dongleman4760 2016-06-07 18:27
浏览 156

我如何将mysql结果直接取出作为数组并存储在变量中?

I very like the syntax :

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

instead of more verbose

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

My question is how do I free results from memory in case 1 ?

In other words : Do assigning a new value to the variable does automatically free the results ?

I've searched for that on stackExchange / Google with no success...and I found it's an interesting question.

  • 写回答

1条回答 默认 最新

  • duanqiongchong0354 2016-06-07 18:52
    关注

    Method Chaining (your first example) works by executing each following function on the object returned by the previous function. So you can do $db_connect->query("SELECT * FROM table")->fetch_assoc(); because query() returns a mysqli_result object and that object supports the fetch_assoc() method.

    fetch_assoc(), in turn, returns...

    ... 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.

    Since this result is an array (or NULL) and not an object, no further methods can be added to the chain after it.

    评论

报告相同问题?

悬赏问题

  • ¥20 数学建模,尽量用matlab回答,论文格式
  • ¥15 昨天挂载了一下u盘,然后拔了
  • ¥30 win from 窗口最大最小化,控件放大缩小,闪烁问题
  • ¥20 易康econgnition精度验证
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能