ホームページ >バックエンド開発 >PHPチュートリアル >MySQLi プリペアド ステートメントは複数のクエリを処理できますか?

MySQLi プリペアド ステートメントは複数のクエリを処理できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-25 06:07:12839ブラウズ

Can MySQLi Prepared Statements Handle Multiple Queries?

複数のクエリによる 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 サイトの他の関連記事を参照してください。

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