mysqli 具有多个查询的查询准备
mysqli 的预准备语句功能不支持多查询准备。 mysqli 中的准备语句仅限于执行单个 MySQL 查询。
替代方法:
如果需要顺序执行多个查询,可以创建单独的准备好的语句每个查询的语句:
$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)"); $stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?)");
基于事务方法:
或者,您可以使用事务来确保两个查询都执行或都不执行:
$sql->begin_transaction(); // Execute both queries if (!$stmtUser->execute() || !$stmtProc->execute()) { $sql->rollback(); } else { $sql->commit(); }
错误调试:
如果遇到“call to member function on a non-object”错误,则表明语句的准备失败。仔细检查你的prepare()语句是否有任何错误。
以上是MySQLi 准备好的语句可以处理多个查询吗?的详细内容。更多信息请关注PHP中文网其他相关文章!