PDO::prepare
(no version information, might be only in CVS)
PDO::prepare --
文を実行する準備を行い、文オブジェクトを返す
説明
PDOStatement
PDO::prepare ( string statement [, array driver_options] )
警告 |
この関数は、
実験的なステータスにあります。これは、この関数の
動作、関数名、ここで書かれていること全てがPHPの将来のバージョンで予告
なく変更される可能性があることを意味します。注意を喚起するとともに自分
のリスクでこの関数を使用してください。 |
PDOStatement::execute() メソッドによって実行される
SQL 文を準備します。
SQL 文は、文が実行されるときに実際の値に置き換えられる 0
個もしくはそれ以上の名前 (:name) もしくは疑問符 (?)
パラメータマークを含むことができます。
異なるパラメータを用いて複数回実行されるような文に対し
PDO::prepare() と
PDOStatement::execute() をコールすることは、
アプリケーションのパフォーマンスを最適化し、
SQL インジェクション攻撃から保護する助けになります。
パラメータ
- statement
これは対象のデータベースサーバに対して有効な SQL
文でなければなりません。
- driver_options
この配列は、このメソッドによって返される PDOStatement
オブジェクトに対して 1
もしくはそれ以上の key=>value の組を含みます。
通常、スクロール可能なカーソルを要求するために
PDO_ATTR_CURSOR に
PDO_CURSOR_SCROLL
をセットする場合に使用するでしょう。
戻り値
もしデータベースサーバが正常に文を準備する場合、
PDO::prepare() は PDOStatement オブジェクトを返します。
例
例 1. 名前付きパラメータを用いて SQL 文を準備する
<?php /* 値の配列を渡してプリペアドステートメントを実行する */ $sql = 'SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'; $sth = $dbh->prepare($sql, array(PDO_ATTR_CURSOR, PDO_CURSOR_FWDONLY)); $sth->execute(array(':calories' => 150, ':colour' => 'red')); $red = $sth->fetchAll(); $sth->execute(array(':calories' => 175, ':colour' => 'yellow')); $yellow = $sth->fetchAll(); ?>
|
|
例 2. 疑問符パラメータを用いて SQL 文を準備する
<?php /* 値の配列を渡してプリペアドステートメントを実行する */ $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < ? AND colour = ?'); $sth->execute(array(150, 'red')); $red = $sth->fetchAll(); $sth->execute(array(175, 'yellow')); $yellow = $sth->fetchAll(); ?>
|
|
以下も参照ください
PDO::exec() |
PDO::query() |
PDOStatement::execute() |