正在研究学生课程和答案的数据库。每个赋值和每个结果都有一个关联数组,其中六个或更多字段(列)存储在课程和答案表中的MySQL数据库中。
我使用sql PDO execute()获取所有赋值以及不同的sql来获取所有结果。
FetchAll为我提供了一个外部数值数组和一个包含数字和关联索引的内部数组。我只想在内部数组上使用关联索引。 ->fetch(\PDO::FETCH_ASSOC);
没有给我什么。 (\由于名称空格 - 没有\我得到一个错误)->fetchAll();
给了我一个外部数字索引数组和带有两个索引的内部数组。
我可以删除内部数字索引或忽略它们,但这似乎是klutzy,因为这些内部数组使用了很多方法。
也许答案是在sql而不是fetch中。到目前为止,我提出的最好的方法是使用以下方法删除数字索引:
$stmt->execute();
$rows = $stmt->fetchAll();
foreach ($rows as $key=>$value) {
foreach ($value as $key2=>$value2) {
if (is_numeric($key2) === TRUE) {
unset($value[$key2]);
}
}
$rows[$key] = $value;
}
return $rows;
有更好的方法吗?
jimfuqua
答案 0 :(得分:1)
在Michael Berkowski的评论的帮助下,我尝试了一个实验。
$ rows = $ stmt-> fetchAll(\ PDO :: FETCH_ASSOC);我得到了我正在寻找的东西。外部数组有一个数字索引,内部数组有一个关联索引。
使用$ rows = $ stmt-> fetchAll();我得到了我试图避免的重复。
使用$ rows = $ stmt-> fetch(\ PDO :: FETCH_ASSOC);我只将一个内部数组作为关联。没有外部数组,其中一个内部数组丢失了。因为它们是相同的,我无法分辨哪个内部阵列丢失了。
JimFuqua