Un'istruzione preparata può eseguire solo una query MySQL. Puoi preparare tutte le istruzioni che vuoi in diverse variabili:
$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");
E poi eseguili più tardi. Se vuoi assicurarti che nessuno dei due venga mai eseguito a meno che entrambi non siano in grado di funzionare, allora devi esaminare le transazioni, come ha detto Thomas.
Inoltre, un suggerimento generale:"chiama alla funzione membro su un non oggetto" è l'errore standard che ricevi quando prepare()
fallisce e quindi $stmt
non è in realtà un oggetto istruzione preparato. Di solito significa che devi cercare un errore nel tuo prepare()
dichiarazione piuttosto che qualsiasi altra cosa successiva.