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

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

Patricia Arquette
リリース: 2024-11-25 06:07:12
オリジナル
893 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート