2

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

4

2 回答 2

5

它向您返回一个关联数组,以便您可以通过字段名称或索引来引用结果。

例如$times['timestamp']$times[0]

于 2013-06-19T17:33:18.360 回答
5

您需要将获取模式从 PDO::FETCH_BOTH 更改为 PDO::FETCH_ASSOC

foreach ($conn->query($timestamp_query, PDO::FETCH_ASSOC) as $times ) 

这将对其进行更改,使其仅将数据作为关联数组返回。

或者,如果您只想要一个索引数组,您可以使用 PDO::FETCH_ARRAY 或对于对象使用 PDO::FETCH_OBJECT。

更多信息可以在这里找到

于 2013-06-19T17:34:32.010 回答