我在函数中有两个准备好的语句。在我从第一个得到结果后,我需要从这个结果中得到一个字段的值,以便在第二个语句中用作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();
- 你可以在这里阅读如何使用准备好的语句
- 您可以阅读本文档,了解如何使用mysqli准备的语句