Preparing Multiple Queries in a Single MySQLi Statement
It is not possible to prepare multiple queries in a single MySQLi statement. Each mysqli_prepare() call can only prepare a single query.
Alternative Approach for Executing Multiple Queries
If you need to execute multiple queries in one go, you can create and execute separate mysqli_prepare() statements for each query.
<code class="php">$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)"); $stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);"); $stmtUser->bind_param("ssss", $id, $username, $pw, $email); $stmtProc->bind_param("ss", $id, $idp); $stmtUser->execute(); $stmtProc->execute(); $stmtUser->close(); $stmtProc->close();</code>
Handling Errors
The error "Call to a member function on a non-object" is typically encountered when prepare() fails. This is usually due to an error in the prepared statement itself, not in subsequent code.
Transaction Support
If you want to ensure that multiple queries are executed together or not at all, MySQLi supports transactions. You can use the mysqli_begin_transaction() and mysqli_commit() functions to control transaction boundaries.
The above is the detailed content of Can I Prepare Multiple Queries in a Single MySQLi Statement?. For more information, please follow other related articles on the PHP Chinese website!