ホームページ >データベース >mysql チュートリアル >MySQLi は 1 つのステートメントで複数のクエリを準備できますか?

MySQLi は 1 つのステートメントで複数のクエリを準備できますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-29 02:41:30398ブラウズ

Can MySQLi Prepare Multiple Queries in a Single Statement?

MySQLi は 1 つのステートメントで複数のクエリを準備できますか?

単一の MySQLi ステートメントで複数のクエリを準備することはできませんが、回避策は存在します

複数ステートメントの準備

単一の MySQLi ステートメントで複数のクエリを準備しようとすると、エラーが発生します。あるいは、複数のプリペアド ステートメントを作成することもできます。

<code class="php">$stmt = $mysqli->prepare("SELECT * FROM users");
$stmt2 = $mysqli->prepare("INSERT INTO orders (user_id) VALUES (?)");</code>

プリペアド ステートメントの結合

制御された方法で複数のクエリを実行するには、トランザクション:

<code class="php">mysqli->begin_transaction();
$stmt->execute();
$stmt2->execute();
mysqli->commit(); // Execute transaction</code>

これにより、両方のクエリが正常に実行されるか、まったく実行されないかが保証されます。

エラー処理

準備されたステートメントのいずれかが実行中に失敗すると、トランザクションはロールバックされ、変更は行われません。準備されたステートメントの実行後にエラーをチェックすることが重要です。

<code class="php">if ($stmt->errno != 0) {
    echo "Error: " . $stmt->error;
}</code>

追加のヒント

通常、「非オブジェクトのメンバー関数の呼び出し」エラーが発生します。 prepare() メソッドが失敗した場合に発生します。続行する前に、クエリ文字列の構文が正しいことを確認してください。

以上がMySQLi は 1 つのステートメントで複数のクエリを準備できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。