Připravený příkaz může provést pouze jeden dotaz MySQL. V různých proměnných si můžete připravit tolik příkazů, kolik chcete:
$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");
A pak je provést později. Pokud chcete zajistit, že ani jeden nebude nikdy spuštěn, pokud nebudou schopny spustit oba, musíte se podívat na transakce, jak řekl Thomas.
Také obecný tip:"volání členské funkce na jiném než objektu" je standardní chyba, kterou dostanete, když prepare()
selže a tak $stmt
není ve skutečnosti připravený objekt příkazu. Obvykle to znamená, že musíte hledat chybu v prepare()
spíše prohlášení než cokoli později.