在数组中返回2个相同的元素,经过mysql查询,为什么?

时间:2013-06-19 17:28:58

标签: php mysql arrays pdo

我用这样的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个相同的元素,而不是只有一个?

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