Mysqli peut-il préparer plusieurs requêtes dans une seule instruction ?
Dans mysqli, une instruction préparée est conçue pour exécuter une seule requête MySQL. Bien qu'il ne soit pas possible de préparer plusieurs requêtes dans une seule instruction, vous pouvez créer plusieurs instructions préparées dans différentes variables.
Pour ce faire, utilisez l'approche suivante :
$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)"); $stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");
Vous pouvez puis exécutez ces instructions indépendamment. Par exemple :
$stmtUser->bind_param("ssss", $id, $username, $pw, $email); $stmtUser->execute(); $stmtProc->bind_param("ss", $id, $idp); $stmtProc->execute();
Si vous avez besoin d'une exécution stricte des deux requêtes simultanément, vous devriez envisager d'utiliser des transactions. Les transactions garantissent que les deux requêtes réussissent ou échouent toutes les deux.
Enfin, rappelez-vous qu'une erreur « appel à une fonction membre sur un non-objet » indique généralement un échec dans l'instruction prepare(), vous obligeant à l'inspecter. pour les erreurs.
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!