我想从同一个 PHP 文件连续调用 MySQL 存储例程(使用准备好的语句),如下所示:
$conn = getconn();
$stmt = $conn->prepare("CALL GetUserLoginData(?);");
$stmt->bind_param("s", $username);
$stmt->execute();
// Process data here... until next stored routine call
$conn = getconn();
// var_dump($conn);
$stmt2 = $conn->prepare("CALL SetUserLoginTime(?);");
$stmt2->bind_param("i", $userid);
$stmt2->execute();
wheregetconn()
返回与 . 的数据库连接new mysqli()
。
此代码适用于运行 PHP 5.3.8-1/MySQL 5.1.54 的 Web 服务器,但不适用于运行 PHP 5.3.10/5.5.29 的服务器。
如果我取消注释var_dump($conn)
,我会得到 ["error"]=> string(52) "Commands out of sync; you can't run this command now"
.
我无法弄清楚为什么这只发生在一台服务器上。