PHP では、「PDO::prepare」は、実行するステートメントを準備し、ステートメント オブジェクトを返すことを意味します。その使用構文は、「public PDO::prepare(string $statement, array $driver_options = array)」のようになります。 ())」。
この記事の動作環境:Windows7システム、PHP8バージョン、DELL G3コンピュータ
php prepareの使い方とは?
PDO::prepare
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PHP 8,PECL pdo >= 0.1 .0)
PDO::prepare — 実行するステートメントを準備し、ステートメント オブジェクトを返す
Description
public PDO::prepare(string $statement, array $driver_options = array()): PDOStatement
PDOStatement:: に対して実行するステートメントを準備します。 execute() メソッドの SQL ステートメント。ステートメント テンプレートには、名前 (:name) または疑問符 (?) の形式で 0 個以上のパラメーター プレースホルダー マーカーを含めることができ、実行時に実際のデータに置き換えられます。同じステートメント テンプレート内で、名前付きフォームと疑問符フォームを同時に使用することはできません。パラメーター フォームのいずれか 1 つだけを選択できます。ユーザーが入力したデータをバインドするにはパラメーター フォームを使用し、文字列をクエリに直接結合しないでください。
PDOStatement::execute() を呼び出す場合、各値のパラメーター プレースホルダー マークには一意の名前が必要です。シミュレーション モードが有効になっていない限り、同じ名前のパラメータを同じステートメント内で使用することはできません。
注:
パラメータ プレースホルダは完全なデータを文字通りに表示することしかできません。リテラル、キーワード、識別子、またはその他の任意のスコープの一部にすることはできません。例: 複数の値を 1 つのパラメータにバインドし、SQL ステートメントで IN() クエリを使用することはできません。
異なるパラメーターを使用し、PDO::prepare() および PDOStatement::execute() を通じて同じ SQL ステートメントを複数回呼び出すと、アプリケーションのパフォーマンスが向上します。ドライバーはクライアント/サーバーでクエリとメタ情報をキャッシュします。同時に、PDO::prepare() および PDOStatement::execute() を呼び出すと、パラメーターを手動で引用符で囲んだりエスケープしたりすることなく、SQL インジェクション攻撃を防ぐこともできます。
組み込みドライバーがパラメーターをサポートしていない場合、PDO はパラメーターの機能をシミュレートします。ドライバーがいずれかのスタイル (名前付きパラメーターと疑問符パラメーター) のみをサポートしている場合は、自動的にもう一方のスタイルに書き換えられます。スタイル。
注意: The parser used for emulated prepared statements and for rewriting named or question mark style parameters supports the non standard backslash escapes for single- and double quotes. That means that terminating quotes immediately preceeded by a backslash are not recognized as such, which may result in wrong detection of parameters causing the prepared statement to fail when it is executed. A work-around is to not use emulated prepares for such SQL queries, and to avoid rewriting of parameters by using a parameter style which is natively supported by the driver.
パラメータ
statement
は、ターゲット データベース サーバーの有効な SQL ステートメント テンプレートである必要があります。
driver_options
配列には、返された PDOStatement オブジェクトのプロパティを設定する 1 つ以上の key=>value キーと値のペアが含まれています。一般的な使用法は次のとおりです。 PDO::ATTR_CURSOR を PDO::CURSOR_SCROLL に設定すると、スクロール可能なカーソルが取得されます。一部のドライバーには、準備中に設定されるドライバーレベルのオプションがあります。
戻り値
データベース サーバーがステートメントの準備を完了すると、PDO::prepare() は PDOStatement オブジェクトを返します。データベース サーバーがステートメントを準備できない場合、PDO::prepare() は false を返すか、PDOException をスローします (エラー ハンドラに応じて)。
注:
シミュレーション モードの prepare ステートメントはデータベース サーバーと対話しないため、PDO::prepare() はステートメントをチェックしません。
例
例#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(); ?>
推奨される学習: 「 PHP ビデオ チュートリアル >>
以上がphp prepareの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。