在运行第一个准备好的存储过程后,我似乎遇到了运行第二个准备好的查询的麻烦。我理解这是因为我无法在mySQL中缓冲结果,但我不确定我应该使用它来获得所有结果。
我试过了:
$stmt->store_result();
$stmt->fetch();
$stmt->bind_result($var1, $var2);
$stmt->free_result();
但我仍然得到同样的错误。该过程工作正常,并且只能返回1行,所以不确定。
完整错误是:
命令不同步;你现在不能运行这个命令
更新:
更相关的代码:
$stmt = $mysqli->prepare('CALL createNewListing(?,?,?,?,?,?)');
$time = time();
$stmt->bind_param('sdssii', $listing['title'], $listing['price'], $_SESSION['user']['id'], $listing['description'], $time, $listing['featured']);
$stmt->execute();
$stmt->store_result();
$stmt->fetch();
$stmt->bind_result($listing['primarypic']['id'], $listing['id']);
$stmt->free_result();
$stmt->close();
// Error is generated here.
$statement = $mysqli->prepare('INSERT INTO pictures (listid, primarypic) VALUES (?, ?)');
if (!$statement) {
echo $mysqli->error;
die();
}