不知道如何在标题中总结这一点,所以就把我放的东西。
我遇到了这个问题:
$result = $connect->query($query, MYSQLI_STORE_RESULT);
然后,在同一个脚本的下方,我使用'result'变量名称替换其他内容(更新查询,因此没有MYSQLI_STORE_RESULT):
$result = $connect->query($query);
在我的剧本结尾处,我说:
mysqli_free_result($result);
我收到错误 - 没有存储结果可以免费,因为$ result已设置为其他内容。
我的问题是......
当我执行第一个查询时:
$result = $connect->query($query, MYSQLI_STORE_RESULT);
即使将$ result等同于其他内容,结果是否会继续存储?
或者,在第二次查询执行时分配$ result会释放结果吗?
答案 0 :(得分:1)
首先做以下
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Update table doesn't return a resultset */
if (mysqli_query($link, "Update tb1 Set col1="qqq"") === TRUE) {
printf("Table tb1 successfully updated.\n");
}
// Select queries return a resultset
if ($result = mysqli_query($link, "SELECT * FROM tb1")) {
printf("Select returned %d rows.\n", mysqli_num_rows($result));
/* free result set */
mysqli_free_result($result);
}