ホームページ >バックエンド開発 >PHPチュートリアル >MySQLi プリペアド ステートメントは複数のクエリを処理できますか?
複数のクエリによる mysqli クエリの準備
複数のクエリの準備は、mysqli のプリペアド ステートメント機能ではサポートされていません。 mysqli の準備済みステートメントは、単一の MySQL クエリの実行に限定されています。
代替アプローチ:
複数のクエリを順番に実行する必要がある場合は、個別の準備済みステートメントを作成できます。各クエリのステートメント:
$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)"); $stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?)");
トランザクションベースアプローチ:
または、トランザクションを使用して、両方のクエリが実行されるか、どちらも実行されないようにすることもできます:
$sql->begin_transaction(); // Execute both queries if (!$stmtUser->execute() || !$stmtProc->execute()) { $sql->rollback(); } else { $sql->commit(); }
エラー デバッグ:
「非オブジェクトのメンバー関数の呼び出し」エラーが発生した場合は、ステートメントの準備が完了していないことを示しています。 失敗した。 prepare() ステートメントにエラーがないか注意深く確認してください。
以上がMySQLi プリペアド ステートメントは複数のクエリを処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。