PHP での prerare の使用法は「PDO::prepare」です。これは、実行するステートメントを準備し、ステートメント オブジェクトを返すことを意味します。その使用構文は、「public PDO::prepare(string $statement)」のようになります。 、配列 $driver_options = array())」。
このチュートリアルのオペレーティング システム: Windows 10 システム、PHP バージョン 8.1.3、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)或问号(?)的形式,当它执行时将用真实数据取代。 在同一个语句模板里,命名形式和问号形式不能同时使用;只能选择其中一种参数形式。 请用参数形式绑定用户输入的数据,不要直接字符串拼接到查询里。
Call PDOStatement:: execute() の場合、各値のパラメータ プレースホルダ マークには一意の名前が必要です。シミュレーション モードが有効になっていない限り、同じ名前のパラメータを同じステートメント内で使用することはできません。
注:
パラメータ プレースホルダは完全なデータを文字通りに表示することしかできません。リテラル、キーワード、識別子、またはその他の任意のスコープの一部にすることはできません。例: 複数の値を 1 つのパラメータにバインドし、IN() を使用して SQL ステートメントでクエリを実行することはできません。
異なるパラメーターを使用し、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.
Parameters
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でprerareを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。