Pear MDB2 デ-タベ-ス操作

PHP::mysqli デ-タベ-ス操作ファイル挿入部作成

PHP::mysqli::prepare を利用して各デ-タをデ-タベ-スに書込むための SQL 文等を作成していきます。
ファイル内容は、 63Pear Village のトップの左サイドナビ
「Pear MDB2 デ-タベ-ス操作」 の中の
PHP:mysqli デ-タベ-ス操作 PHP ファイル
を見てください。
PHP::mysqli デ-タベ-ス操作ファイル接続部作成
で、デ-タベ-ス接続まではファイル作成が完了しています。
続きを説明していきます。

SQL 文作成

それでは、デ-タベ-ス挿入ファイルを作成していきます。
プリペアドステ-トメントは SQL 文を実行する前に準備・解析します。
まず、入力値や変数などの可変する値を SQL 文中にプレ-スフォルダと呼ばれるクエスチョンマ-ク「?」 として埋込んでおき SQL 文を作成します。
その後、入力値や変数をプレ-スフォルダにあてはめ SQL 文が実行されます。
可変しない部分を先に実行し、そのあとに変数を組込むので、怪しげな式で SQL 文が実行されるのを 防止することができます。
プリペアドステ-トメント用 SQL 文を作成します。
$sql =
  "INSERT INTO info
  (uname,email,postnum,addre,come)
  VALUES
  (?, ?, ?, ?, ?)";
????? が味噌ですね。

プリペアドステ-トメント実行

PHP 関数 prepare メソッド実行を実行します。
$sth = $mysqli->prepare($sql);
これで、SQL が仮実行されました。
デ-タは?なのでまだ挿入されません。
PHP 関数 bind_param メソッドを実行します。
$sth->bind_param('ssiss',
  $_POST["uname"], $_POST["email"],
  $_POST["postnum"],
  $_POST["addre"], $_POST["come"]);
bind_param の( )の中身に付いて説明します。
'ssiss'が意味不明ですね。
i に対応する変数の型は integer です。
3番目の書込みデ-タ $_POST["postnum"] は郵便番号、例えば 2160001 ですね。
だから i を指定します。
s に対応する変数の型は string です。
その他の書込みデ-タ
$_POST["uname"] 名前
$_POST["email"] メ-ルアドレス
$_POST["addre"] 住所
$_POST["come"] コメント
は文字列ですね。
だからそれぞれ s を4個指定します。
そのほかにも
d に対応する変数の型は double です。
b 対応する変数の型は blob で、複数のパケットに分割して送信されるそうですが、詳細は不明です。
bind_param() が実行されると、?だったデ-タに実デ-タが組込まれます。

SQL を実行

$result = $sth->execute();
execute メソッドを実施し、SQL 文を実行します。
とは言うものの SQL 文の大部分は prepare メソッドで実行されていますので、ここでは 変数値を入れ込んで、デ-タベ-スに流し込む作業をします。
あとは完了メッセ-ジを出力をします。
echo
  "Info 情報簿に< br>"
  .$_POST['uname'].
  " さん< br> のデータを挿入しました";
ステートメントを閉じます。
$sth->close();
接続を閉じます。
$mysqli->close();

PHP::mysqli デ-タベ-ス操作ファイル完成

デ-タベ-ス挿入部分もできあがり、PHP::mysqli デ-タベ-ス操作ファイルが完成しました。
完成ファイルは、
63Pear Village のトップの左サイドナビ「Pear MDB2 デ-タベ-ス操作」 の中の
PHP::mysqli デ-タベ-ス操作 PHP ファイル
から見てください。

デ-タベ-ス操作ファイル比較

デ-タベ-ス操作ファイルを Pear::MDB2 と PHP::mysqli の2つの方法で作成してみました。
ファイル量としてはほぼ同じ、どっちがよいかは明確にはわかりませんが、 挿入デ-タを配列指定できるところが、MDB2 の方がよいかなとも思います。
ただ、MDB2 は Pear::MDB2 ファイルの読込みが必要なのでこの点は不利ですね。


Pear MDB2 デ-タベ-ス操作確認 に続く
PHP::mysqli デ-タベ-ス操作ファイル接続部作成 に戻る

63Pear Village に戻る