php - 查询数组显示所有值 2 次
问题描述
我想将查询放入一个数组中,但我遇到了数组问题。这是我的代码:
$stmt = $this->db->prepare("
SELECT id, sentence, form
FROM exercises
ORDER BY rand()
LIMIT 1
");
$stmt->execute();
while ($row = $stmt->fetch()) {
$data[] = $row;
}
var_dump($data);
输出:
array(1) {
[0]=> array(6) {
["id"]=> string(1) "6" [0]=> string(1) "6" ["sentence"]=> string(18) "This is a sentence" [1]=> string(18) "This is a sentence" ["form"]=> string(5) "Form3" [2]=> string(5) "Form3"
}
}
但我希望数组是这样的:
array(1) {
[0]=> array(6) {
["id"]=> string(1) "6" ["sentence"]=> string(18) "This is a sentence" ["form"]=> string(5) "Form3"
}
}
有人能告诉我为什么每个值都显示 2 次吗?
解决方案
值显示 2 次,因为 PDOStatement::fetch 的默认提取样式选项是 PDO::FETCH_BOTH,它返回一个由数字和列名索引的数组。
如果您只想获取列名,请使用 $row = $stmt->fetch(PDO::FETCH_ASSOC)
您可以在此处的 PHP 手册中找到更多信息:https ://www.php.net/manual/en/pdostatement.fetch.php
推荐阅读
- ios - 仅从日期数组中删除时间 Swift
- javascript - 即使应用了我在网上可以找到的所有方法,我的页面也没有滚动
- java - 错误:(3, 31) java: com.sun.tools.javac.jvm 包不存在
- python - 使用 Range-Elasticsearch 过滤
- r - ShinyProxy Euler App 未运行 - 无法启动容器
- python - 使用 Scikit-Learn 和 Python 将评论分类为正面和负面
- php - 我需要知道如何制作相关的国家和城市数组
- javascript - 如何动态加载路由计算?
- c++ - C++:解码一个经过 Base64 编码和 UTF-8 解码的 HTTP 响应
- android-studio - 动画选择器导致视图初始化崩溃