ホームページ > バックエンド開発 > PHPチュートリアル > PHP の prepare() メソッドの分析

PHP の prepare() メソッドの分析

autoload
リリース: 2023-04-09 22:28:01
オリジナル
6209 人が閲覧しました

PHP の prepare() メソッドの分析

クエリ ステートメントが MySQL サービスに送信されるたびに、クエリの構文を解析して、構造が正しく実行可能であることを確認する必要があります。これはプロセスにおいて必要なステップですが、ある程度のオーバーヘッドが発生します。一度行う必要がありますが、同じクエリを繰り返し実行し、複数の行を一括で挿入する際にカラムの値のみを変更する場合、準備されたステートメントはクエリの構文と実行プロセスをサーバー上にキャッシュし、サーバーとクライアントの間でデータを転送し、列の値を変更して、この追加のオーバーヘッドを排除します。

まず、PDO::prepare の構文を見てみましょう。

public PDO::prepare ( string $statement   , array $driver_options = array()   ) : PDOStatement
ログイン後にコピー
  • $statement: は、ターゲット データベース サーバー テンプレート。

  • $driver_options: 配列には 1 つ以上の key=>value キーと値のペアが含まれており、返された PDOStatement オブジェクトの属性を設定します

  • 戻り値 データベース サーバーがステートメントの準備を完了すると、PDOStatement オブジェクトが返されます。データベース サーバーがステートメントを準備できない場合、PDO::prepare() は false を返すか、PDOException をスローします (エラー ハンドラに応じて)。

# コード例:

#1. データベースに接続します

<?php
$servername="localhost";
$username="root";
$password="root123456";
$dbname="my_database";
$pdo=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password);
echo "连接成功"."<br>";
$pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER);
ログイン後にコピー
输出:连接成功
ログイン後にコピー

2. 疑問符パラメーターを使用して SQL ステートメントを準備します

$sql ="select * from fate where `id`=?";
$statement=$pdo->query("select * from fate where `id`=3 ");
var_dump($statement->fetch());

echo "<br>";
$stmt2 = $pdo->prepare($sql);
$stmt2 ->execute(array(3));
var_dump($stmt2->fetch());
ログイン後にコピー
输出:array(6) {["ID"]=>string(1) "3"0]=>string(1) "3"["NAME"]=>string(7) "luncher"[1]=>string(7) "luncher"["AGE"]=>string(2) "56"[2]=>string(2) "56"}
array(6) {["ID"]=>string(1) "3"[0]=>string(1) "3"["NAME"]=>string(7) "luncher"[1]=>string(7) "luncher"["AGE"]=>string(2) "56"[2]=>string(2) "56"}
ログイン後にコピー

#3.

名前付きパラメーターを使用して SQL ステートメントを準備します

$query = "insert into tp_user (id,name,gender)values(:id,:name ,:gender)";
//准备语句
$stmt1 = $pdo->prepare($query);
// 执行查询
$stmt1->execute(array(&#39;id&#39;=> 1,&#39;:name&#39; => &#39;张三&#39;, &#39;:gender&#39; => &#39;男&#39;));
//再次执行
$stmt1->execute(array(&#39;id&#39;=> 2,&#39;:name&#39; => &#39;李四&#39;, &#39;:gender&#39; => &#39;女&#39;));
echo "插入成功!","<br>";
ログイン後にコピー
输出;插入成功!
ログイン後にコピー
おすすめ:

2021 PHP 面接質問まとめ (集)》《php ビデオ チュートリアル #>>

以上がPHP の prepare() メソッドの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート