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 デ-タベ-ス操作ファイル接続部作成 に戻る