sql >> Databasteknik >  >> RDS >> Mysql

mysqli:kan det förbereda flera frågor i ett uttalande?

En förberedd sats kan bara exekvera en MySQL-fråga. Du kan förbereda så många påståenden du vill i olika variabler:

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

Och sedan avrätta dem senare. Om du vill säkerställa att ingen av dem körs om inte båda kan köras, måste du titta på transaktioner, som Thomas sa.

Ett allmänt tips också:"call to member function on a non-objekt" är standardfelet du får när prepare() misslyckas och så $stmt är faktiskt inte ett förberett uttalandeobjekt. Det betyder vanligtvis att du behöver leta efter ett fel i din prepare() uttalande snarare än något senare.



  1. Hur lagrar man katalog/hierarki/trädstruktur i databasen?

  2. Oracle Instant Client för ARM-baserad Debian-enhet

  3. DROP FUNCTION utan att veta antalet/typ av parametrar?

  4. Hur man byter namn på en databas i MySQL