Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysqli :peut-il préparer plusieurs requêtes dans une seule instruction ?

Une instruction préparée ne peut exécuter qu'une seule requête MySQL. Vous pouvez préparer autant de déclarations que vous le souhaitez dans différentes variables :

$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");

Et puis les exécuter plus tard. Si vous voulez vous assurer qu'aucun n'est jamais exécuté à moins que les deux ne soient capables de fonctionner, alors vous devez examiner les transactions, comme l'a dit Thomas.

Aussi, un conseil général :"appel à la fonction membre sur un non-objet" est l'erreur standard que vous obtenez lorsque prepare() échoue et donc $stmt n'est pas réellement un objet d'instruction préparé. Cela signifie généralement que vous devez rechercher une erreur dans votre prepare() déclaration plutôt que quoi que ce soit plus tard.