En forberedt sætning kan kun udføre én MySQL-forespørgsel. Du kan forberede så mange udsagn, du vil, i forskellige variable:
$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");
Og så udføre dem senere. Hvis du vil sikre, at ingen af dem nogensinde køres, medmindre begge er i stand til at køre, så skal du undersøge transaktioner, som Thomas sagde.
Også et generelt tip:"kald til medlemsfunktion på et ikke-objekt" er standardfejlen, du får, når prepare()
fejler og så $stmt
er faktisk ikke et forberedt erklæringsobjekt. Det betyder normalt, at du skal lede efter en fejl i din prepare()
erklæring snarere end noget senere.