2015-04-06 80 views
1

我在函数中有2个准备好的语句。从第一次得到结果后,我需要将此结果中的一个字段的值用作第二个语句中的bind_param()函数的参数。但是我得到了错误,直到我找到了关于store_result()函数并在第一个语句后使用它。因此,您可以告诉或提供一些参考资料来阅读,为什么需要使用store_result()函数以及为什么在使用2个准备好的语句期间出现此问题。PHP 2已准备好的语句错误

我不知道我是否正确,但在我看来,这是因为我没有在第二次开始之前关闭第一个语句,也许是因为两者都是开放的,会产生一些错误。

编辑:
我发现了一些信息,以某种方式帮助我解决这个问题

命令不同步:

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

回答

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读它如何使用准备好的声明。
  2. 你可以阅读this文档如何使用mysqli prepared语句。