ホームページ  >  記事  >  データベース  >  単一の MySQLi ステートメントで複数のクエリを準備できますか?

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 08:55:29890ブラウズ

Can I Prepare Multiple Queries in a Single MySQLi Statement?

単一の MySQLi ステートメントでの複数のクエリの準備

単一の MySQLi ステートメントで複数のクエリを準備することはできません。各 mysqli_prepare() 呼び出しで準備できるクエリは 1 つだけです。

複数のクエリを実行するための代替アプローチ

複数のクエリを一度に実行する必要がある場合は、次のように作成できます。

<code class="php">$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");

$stmtUser->bind_param("ssss", $id, $username, $pw, $email);
$stmtProc->bind_param("ss", $id, $idp);

$stmtUser->execute();
$stmtProc->execute();

$stmtUser->close();
$stmtProc->close();</code>

エラーの処理

エラー「非オブジェクトのメンバー関数の呼び出し」は通常、 prepare() が失敗したときに発生します。これは通常、後続のコードではなく、プリペアド ステートメント自体のエラーが原因です。

トランザクション サポート

複数のクエリが一緒に実行されることを確認したい場合、またはまったくそうではありません。MySQLi はトランザクションをサポートしています。 mysqli_begin_transaction() 関数と mysqli_commit() 関数を使用して、トランザクション境界を制御できます。

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

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