ホームページ > データベース > mysql チュートリアル > PDO_MYSQL または PDO_MYSQLND を使用して単一の PDO ステートメントで複数のクエリを実行するにはどうすればよいですか?

PDO_MYSQL または PDO_MYSQLND を使用して単一の PDO ステートメントで複数のクエリを実行するにはどうすればよいですか?

DDD
リリース: 2024-12-17 18:20:11
オリジナル
425 人が閲覧しました

How Can I Execute Multiple Queries in a Single PDO Statement with PDO_MYSQL or PDO_MYSQLND?

PDO_MYSQL および PDO_MYSQLND を使用した PDO でのマルチクエリのサポート

通常、PDO では 1 つのステートメントで複数のクエリを許可しませんが、特定の拡張機能はこの機能を提供します。

PDO_MYSQLND

PDO_MYSQLND が置き換えられましたPHP 5.3 の PDO_MYSQL。これは、MySQL PDO のデフォルト ドライバーとして機能します。この拡張機能は、次の条件が満たされる場合、複数のクエリの同時実行をサポートします。

  • PHP 5.3 以降
  • mysqlnd
  • エミュレートされたプリペアド ステートメントが有効 (PDO::ATTR_EMULATE_PREPARES) 1 に設定します。これはデフォルトです。 MySQL)

exec の使用

定数値を含む単純なクエリの場合は、exec() メソッドを使用できます。

$db = new PDO(...);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);

$sql = "...";
$db->exec($sql);
ログイン後にコピー

ステートメントの使用

の場合変数データを含むクエリでは、プリペアド ステートメントを使用します。

$db = new PDO(...);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1);

$sql = "...";
$stmt = $db->prepare($sql);
$stmt->execute([...]);
ログイン後にコピー

クエリ結果をループしてエラーを確認したり、データを収集したりすることを忘れないでください。

エンコーディングに関する注意

を使用する場合エミュレートされた準備済みステートメントでは、DSN で正しいエンコーディングが指定されていることを確認してください (PHP 5.3.6 以降で利用可能)。エンコードが正しくないと、異常な文字セットによる SQL インジェクションの軽微なリスクが生じる可能性があります。

以上がPDO_MYSQL または PDO_MYSQLND を使用して単一の PDO ステートメントで複数のクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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