Developer

【PHP応用】 PDO④ プリペアードステートメント
2021.08.31
Lv2

【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文の発行をご覧ください。)

PHPWEBプログラミング講座 連載目次リンク

PHPWEBプログラミング講座 連載目次