Maison > Article > base de données > Puis-je préparer plusieurs requêtes dans une seule instruction MySQLi ?
Préparation de plusieurs requêtes dans une seule instruction MySQLi
Il n'est pas possible de préparer plusieurs requêtes dans une seule instruction MySQLi. Chaque appel à mysqli_prepare() ne peut préparer qu'une seule requête.
Approche alternative pour exécuter plusieurs requêtes
Si vous devez exécuter plusieurs requêtes en une seule fois, vous pouvez créer et exécutez des instructions mysqli_prepare() distinctes pour chaque requête.
<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>
Gestion des erreurs
L'erreur "Appel à une fonction membre sur un non-objet" est généralement rencontré lorsque prepare() échoue. Cela est généralement dû à une erreur dans l'instruction préparée elle-même, et non dans le code suivant.
Support des transactions
Si vous souhaitez vous assurer que plusieurs requêtes sont exécutées ensemble ou pas du tout, MySQLi prend en charge les transactions. Vous pouvez utiliser les fonctions mysqli_begin_transaction() et mysqli_commit() pour contrôler les limites des transactions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!