"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Puis-je préparer plusieurs requêtes dans une seule instruction MySQLi ?

Puis-je préparer plusieurs requêtes dans une seule instruction MySQLi ?

Publié le 2024-11-08
Parcourir:680

Can I Prepare Multiple Queries in a Single MySQLi Statement?

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.

$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();

Gestion des erreurs

L'erreur "Appel à une fonction membre sur un non-objet" est généralement rencontrée 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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3