ホームページ >データベース >mysql チュートリアル >単一の MySQLi ステートメントで複数のクエリを準備できますか?
単一の 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 サイトの他の関連記事を参照してください。