我在函数中有2个准备好的语句。从第一个得到结果后,我需要将此结果中的一个字段值作为bind_param()
函数的参数在第二个语句中使用。但是我得到了错误,直到我发现了store_result()
函数并在第一次声明后使用它。那么你能告诉或提供一些参考阅读,为什么需要使用store_result()
函数以及为什么会出现这个问题,在使用2个准备好的语句时。
我不知道我是不对的,但在我看来,这是因为我没有在开始第二次之前关闭第一个声明,也许是因为两者都是开放的,所以会出现一些错误。
修改
我找到了一些信息,以某种方式帮助我解决了这个问题
命令不同步:
例如,如果您使用mysql_use_result()并尝试在调用mysql_free_result()之前执行新查询,则会发生这种情况。如果您尝试执行两个返回数据的查询而不在其间调用mysql_use_result()或mysql_store_result(),也会发生这种情况。
答案 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();