mysqli_free_result正确使用

时间:2014-11-28 16:31:19

标签: php mysqli

不知道如何在标题中总结这一点,所以就把我放的东西。

我遇到了这个问题:

$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会释放结果吗?

1 个答案:

答案 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);
}