“命令不同步;”准备存储过程错误

时间:2012-01-13 19:09:51

标签: stored-procedures mysqli prepared-statement

在运行第一个准备好的存储过程后,我似乎遇到了运行第二个准备好的查询的麻烦。我理解这是因为我无法在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();
}

0 个答案:

没有答案