php - 如何释放直接作为数组获取并存储在变量中的 mysql 结果?

标签 php mysql sql mysqli

我非常喜欢语法:

$result = $db_connect->query("SELECT * FROM table")->fetch_assoc();

而不是更冗长

$query = $db_connect->query("SELECT * FROM table");
$result = $query->fetch_assoc();
$query->free();

我的问题是在情况 1 中如何从内存中释放结果?

换句话说:为变量分配一个新值是否会自动释放结果?

我在 stackExchange/Google 上搜索过,但没有成功……我发现这是一个有趣的问题。

最佳答案

方法链接(您的第一个示例)通过对前一个函数返回的对象执行每个后续函数来工作。所以你可以做 $db_connect->query("SELECT * FROM table")->fetch_assoc(); 因为 query()返回 mysqli_result对象并且该对象支持 fetch_assoc()方法。

fetch_assoc(),依次返回...

... an associative array of strings representing the fetched row in the result set, where each key in the array represents the name of one of the result set's columns or NULL if there are no more rows in resultset.

因为这个结果是一个数组(或 NULL)而不是一个对象,所以不能在它之后的链中添加更多的方法。

关于php - 如何释放直接作为数组获取并存储在变量中的 mysql 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37686692/

相关文章:

mysql - 递增和返回值的函数 (MySQL)

mysql - Sequelize - 自定义运算符

php - 运行composer update后出现查询异常

mysql - SQL 查询查找表和指定条件之间的列列表中的公共(public)项?

sql - 如何加入 3 个表并按所有 3 个的日期排序?

PHP MongoDB 与 MongoDate 上的查询结果不一致

java - 如何使用 DES 在 Java 中加密数据并将该数据解密为 PHP

php - 加快对mysql的sql查询?

php - 如何在多个子域中使用公共(public) header

mysql - Left 函数遗漏字符