我用这样的PDO做了一个mysql查询
$timestamp_query = "SELECT timestamp FROM change_me;";
foreach ($conn->query($timestamp_query) as $times ) {
print_r($times);
echo "<br>";
}
但是这给了我一组像这样的数组
Array ( [timestamp] => 2013-05-24 17:55:04 [0] => 2013-05-24 17:55:04 )
Array ( [timestamp] => 2013-05-24 18:00:05 [0] => 2013-05-24 18:00:05 )
Array ( [timestamp] => 2013-05-24 18:05:04 [0] => 2013-05-24 18:05:04 )
为什么这给了我每个数组中2个相同的元素,而不是只有一个?
答案 0 :(得分:5)
它会向您返回一个关联数组,因此您可以通过字段名称或索引来引用结果。
E.g。 $times['timestamp']
或$times[0]
答案 1 :(得分:5)
您需要将获取模式从PDO :: FETCH_BOTH更改为PDO :: FETCH_ASSOC
foreach ($conn->query($timestamp_query, PDO::FETCH_ASSOC) as $times )
这将更改它,以便它仅将数据作为关联数组返回。
或者,如果您只想要一个索引数组,可以使用PDO :: FETCH_ARRAY,或者对象使用PDO :: FETCH_OBJECT。
可以找到更多信息here