【 PHP 】PHP8に入門してみた 192日目 PHPの基本 ( データベース SQLクエリ発行 )
PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。
データベース
データベースにデータを登録
実際に登録してみます。
insert_form.php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>データの登録</title>
<!-- Bootstrapを有効化 -->
<!-- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" /> -->
</head>
<body>
<form method="POST" action="insert_process.php">
<div>
<label for="isbn">ISBNコード:</label><br />
<input id="isbn" type="text" name="isbn" size="25" maxlength="20" />
</div>
<div>
<label for="title">書名:</label><br />
<input id="title" type="text" name="title" size="35" maxlength="150" />
</div>
<div>
<label for="price">価格:</label><br />
<input id="price" type="text" name="price" size="6" maxlength="5" />円
</div>
<div>
<label for="publish">出版社:</label><br />
<input id="publish" type="text" name="publish" size="25" maxlength="30" />
</div>
<div>
<label for="published">刊行日:</label><br />
<input id="published" type="text" name="published" size="15" maxlength="10" />
</div>
<div>
<input type="submit" value="登録" />
</div>
</form>
</body>
</html>
insert_process.php
<!DOCTYPE html>
<?php
require_once './Encode.php';
require_once './DbManager.php';
try {
// データベースへの接続を確立
$db = getDb();
// INSERT命令の準備(名前付きパラメータ)
$stt = $db->prepare('INSERT INTO book(isbn, title, price, publish, published) VALUES(:isbn, :title, :price, :publish, :published)');
// INSERT命令にぽstデータの内容をセット
$stt->bindValue(':isbn', $_POST['isbn']);
$stt->bindValue(':title', $_POST['title']);
$stt->bindValue(':price', $_POST['price']);
$stt->bindValue(':publish', $_POST['publish']);
$stt->bindValue(':published', $_POST['published']);
// INSERT命令を実行
$stt->execute();
// 処理後は入力フォームにリダイレクト
header('Location: http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/insert_form.php');
} catch (PDOException $e) {
die("エラーメッセージ:{$e->getMessage()}");
}
入力してみます。
登録ボタンを押すと入力フォームにリダイレクトされました。
本当に登録されたのか確認しました。
メモ
プレイスホルダーは重要。
プレイスホルダーは「名前付きパラメータ」と「名前なしパラメータ」のどちらかを選択できます。
サンプルコードは「名前付きパラメータ」で指定しました。
「名前なしパラメータ」を使用する場合は:isbn
の部分を?
に置き換えて、バインドする際は番号
を指定します。
番号
は1から始まります!
ディスカッション
コメント一覧
まだ、コメントがありません