PHP 2准备语句错误

时间:2015-04-06 09:40:48

标签: php prepared-statement

我在函数中有2个准备好的语句。从第一个得到结果后,我需要将此结果中的一个字段值作为bind_param()函数的参数在第二个语句中使用。但是我得到了错误,直到我发现了store_result()函数并在第一次声明后使用它。那么你能告诉或提供一些参考阅读,为什么需要使用store_result()函数以及为什么会出现这个问题,在使用2个准备好的语句时。

我不知道我是不对的,但在我看来,这是因为我没有在开始第二次之前关闭第一个声明,也许是因为两者都是开放的,所以会出现一些错误。

修改
我找到了一些信息,以某种方式帮助我解决了这个问题

命令不同步:

  

例如,如果您使用mysql_use_result()并尝试在调用mysql_free_result()之前执行新查询,则会发生这种情况。如果您尝试执行两个返回数据的查询而不在其间调用mysql_use_result()或mysql_store_result(),也会发生这种情况。

1 个答案:

答案 0 :(得分:1)

store_result()自行使用从上一个查询中传输结果集。

Example :
$stmt = $mysqli->prepare("SELECT col1,col2 FROM tabel WHERE col1= ?")
$stmt->bind_param('s', $test);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($col1,$col2);
$stmt->fetch();
  1. 您可以在here中阅读如何使用prepared-statement。
  2. 您可以阅读this文档如何使用mysqli prepared-statement。