2021.08.31
【PHP応用】 PDO④ プリペアードステートメント
プリペアードステートメントとは
一度クエリを準備した状態(プリペアードステートメント)にしてから実行することです。
「SQLの実行=SQL文の構文解析+構文の解釈」です。
プリペアードステートメントは、構文解析をDBMS側で先に済ませ、
そこにパラメータを当てはめて繰り返し使うことで、処理効率を高めます。
プリペアードステートメントの別名は、「静的プレースホルダ」や「バインド機構」です。
PDOクラスの定数「ATTR_EMULATE_PREPARES」を「false」にしておかないと
「動的プレースホルダ」の実現にしかなりません。
プリペアードステートメントの実例
プリペアードステートメントは、基本的には、文字列の中にSQL文をそのまま書きます。
しかし1つだけ本来のSQL文と違う点があります。
値を埋め込むところに、実際の値ではなく、「:変数名」を書き込みます。
$sql = "insert into member (id,name,number,email) values(:name, :number, :email)";
実際の値をどうやって代入するかは、次回以降の記事で説明します。
プリペアードステートメントを使う際の注意点
プリペアードステートメントに渡すパラメータは、引用符で括る必要はありません。
まとめ
次回はプリペアードステートメントを使った、
具体的なクエリの発行法を、INSERT文を例に説明します。
(mysqli関数を使ったINSERT文の発行は、【PHP】mysqli関数④ INSERT文の発行をご覧ください。)