pdo - fetchAll() - 真的有必要吗?
问题描述
示例 1°:
$stmt = 'SELECT * FROM table ORDER BY id DESC LIMIT 2';
$Dp = $conn->query($stmt)->fetchAll();
示例 2°:
$stmt = 'SELECT * FROM table ORDER BY id DESC LIMIT 2';
$Dp = $conn->query($stmt);
这两个例子有什么区别?我是 PDO 的新手,我看不出两个例子之间的区别。
解决方案
这有点取决于你想对结果做什么。
您从中获得的实际数据结构非常不同,但您可能会问这个问题,因为您可以使用foreach
.
但fetchAll()
返回一个纯 PHP 数组,其中 asquery
返回一个具有隐藏内部结构的 PHP 对象。您可以(例如)调用 json_encode 的两个之一。
通常直接循环 PDOStatement 可能会快一点,因为您没有创建(可能很大)中间数组。
推荐阅读
- python - 填充数据框列比 iterrows 更好的方法 - python + pandas
- javascript - 在css中,如何在保持其纵横比的同时最大化div内的图像大小?
- javascript - 导入 Handlebar 模板和获取它们之间的区别?
- macos - 如何将 isAlternative 与带有 customView 的 NSMenuItem 一起使用?
- oracle - SQL Plus 是否可以验证是否可以运行 sql 脚本?
- java - Java如何在新线程上打开异常而不是引发异常的线程
- codenameone - 在代号中居中标签的标准方法是什么?
- c++ - 我是否需要用 C++ 中的花括号将 case 的主体包裹在 switch 语句中?
- python - python函数中的正确方式提示'->'多个返回类型
- vuetify.js - 如何禁用 Vuetify v-expansion-panel 组件的动画?