sql >> Base de Datos >  >> RDS >> Mysql

mysqli:¿puede preparar múltiples consultas en una declaración?

Una declaración preparada solo puede ejecutar una consulta MySQL. Puedes preparar tantas sentencias como quieras en diferentes variables:

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

Y luego ejecutarlos más tarde. Si desea asegurarse de que ninguno se ejecute nunca a menos que ambos puedan ejecutarse, entonces debe analizar las transacciones, como dijo Thomas.

Además, un consejo general:"llamar a la función miembro en un no objeto" es el error estándar que recibe cuando prepare() falla y entonces $stmt no es en realidad un objeto de declaración preparada. Por lo general, significa que debe buscar un error en su prepare() declaración en lugar de cualquier cosa posterior.