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

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

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. データベースに接続します

";
$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 "
"; $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('id'=> 1,':name' => '张三', ':gender' => '男'));
//再次执行
$stmt1->execute(array('id'=> 2,':name' => '李四', ':gender' => '女'));
echo "插入成功!","
";
ログイン後にコピー
输出;插入成功!
ログイン後にコピー
おすすめ:

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

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!