PDO->prepare()とは? わかりやすく解説

Weblio 辞書 > コンピュータ > PHP関数リファレンス > PDO->prepare()の意味・解説 

PDO->prepare()

(PHP 5 >= 5.1.0)
PDO->prepare() — 文を実行する準備を行い、文オブジェクトを返す

説明

class PDO {
PDOStatement prepare ( string statement [, array driver_options] )
} PDOStatement->execute() メソッドによって実行される SQL ステートメントを準備します。 SQL ステートメントは、文が実行されるときに実際の値に置き換えられる 0 個もしくはそれ以上の名前 (:name) もしくは疑問符 (?) パラメータマークを含むことができます。 名前と疑問符パラメータを同一 SQL ステートメント中で使用することはできません。 どちらか一方か、他のパラメータ形式を使用してください。
PDOStatement->execute() をコールする際には、 文に渡すパラメータにはそれぞれ固有のパラメータマークを設定する必要があります。 ひとつのプリペアドステートメントの中で、同じ名前のパラメータマークを 複数使用することはできません。SQL 文の IN() 句などで、 ひとつのパラメータに複数の値を 割り当てることはできません。
異なるパラメータを用いて複数回実行されるような文に対し PDO->prepare()PDOStatement->execute() をコールすることで、 ドライバがクライアントまたはサーバ側にクエリプランやメタ情報を キャッシュさせるよう調整するため、 アプリケーションのパフォーマンスを最適化します。また、 パラメータに手動でクオートする必要がなくなるので SQL インジェクション攻撃から保護する助けになります。
PDO は元々この機能をサポートしていないドライバに対して プリペアドステートメントとバインドパラメータをエミュレートします。 このため、ある形式をサポートしているがその他の形式をサポートしていない ドライバの場合、名前もしくは疑問符形式のパラメータを他の適当な値に 書き換えることも可能です。

パラメータ

statement
これは対象のデータベースサーバに対して有効な SQL 文でなければなりません。
driver_options
この配列は、このメソッドによって返される PDOStatement オブジェクトに対して 1 もしくはそれ以上の key=>value の組を含みます。 通常、スクロール可能なカーソルを要求するために PDO::ATTR_CURSORPDO::CURSOR_SCROLL を設定する場合に使用することになるでしょう。 いくつかのドライバには、準備する際に利用可能なドライバ固有の オプションがあります。

返り値

もしデータベースサーバが正常に文を準備する場合、 PDO->prepare() は PDOStatement オブジェクトを返します。 もしデータベースサーバが文を準備できなかった場合、 PDO->prepare()FALSE を返します。

例 1657. 名前付きパラメータを用いて 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();
?>

例 1658. 疑問符パラメータを用いて 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()




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「PDO->prepare()」の関連用語

PDO->prepare()のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



PDO->prepare()のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.

©2024 GRAS Group, Inc.RSS