Przygotowana instrukcja może wykonać tylko jedno zapytanie MySQL. Możesz przygotować dowolną liczbę zestawień w różnych zmiennych:
$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");
A potem wykonaj je później. Jeśli chcesz mieć pewność, że żaden z nich nigdy nie zostanie uruchomiony, chyba że oba są w stanie uruchomić, musisz przyjrzeć się transakcjom, jak powiedział Thomas.
Ogólna wskazówka:„wywołanie funkcji składowej na obiekcie innym niż obiekt” jest standardowym błędem, który pojawia się, gdy prepare()
nie powiedzie się, więc $stmt
nie jest w rzeczywistości obiektem przygotowanej instrukcji. Zwykle oznacza to, że musisz poszukać błędu w swoim prepare()
oświadczenie, a nie cokolwiek później.