ホームページ >バックエンド開発 >PHPチュートリアル >MySQLi プリペアド ステートメントは複数のクエリを同時に処理できますか?
mysqli は 1 つのステートメントで複数のクエリを準備できますか?
mysqli では、準備されたステートメントは単一の MySQL クエリを実行するように設計されています。 1 つのステートメントで複数のクエリを準備することはできませんが、異なる変数に複数の準備されたステートメントを作成できます。
これを行うには、次のアプローチを使用します。
$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); $stmtUser->execute(); $stmtProc->bind_param("ss", $id, $idp); $stmtProc->execute();
両方のクエリを同時に厳密に実行する必要がある場合は、トランザクションの使用を検討する必要があります。トランザクションにより、両方のクエリが成功するか、両方とも失敗することが保証されます。
最後に、「非オブジェクトのメンバー関数の呼び出し」エラーは通常、prepare() ステートメントの失敗を示すため、それを検査する必要があることを覚えておいてください。エラーの場合。
以上がMySQLi プリペアド ステートメントは複数のクエリを同時に処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。