PHP 2 Prepared Statements Error


PHP 2 Prepared Statements Error

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

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

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

命令不同步:

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

store_result()它自己使用Transfers从上次查询中传输结果集。

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. 你可以在这里阅读如何使用准备好的语句
  2. 您可以阅读本文档,了解如何使用mysqli准备的语句