Php 数组中返回2个相同的元素,mysql查询后,为什么?
我用PDO做了一个mysql查询,如下所示Php 数组中返回2个相同的元素,mysql查询后,为什么?,php,mysql,arrays,pdo,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
$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 )
为什么每个数组中有两个相同的元素,而不是一个?它会向您返回一个关联数组,以便您可以通过字段名或索引引用结果
例如,
$times['timestamp']
或$times[0]
您需要将获取模式从PDO::fetch\u BOTH更改为PDO::fetch\u ASSOC
foreach ($conn->query($timestamp_query, PDO::FETCH_ASSOC) as $times )
这将更改它,使其仅以关联数组的形式返回数据
或者,如果只需要索引数组,则可以使用PDO::FETCH_数组,或者对于对象,可以使用PDO::FETCH_对象
可以找到更多信息我远非PDO专家,但我认为
$times
是一行,您需要在$times[0]
或$times['timestamp']
之后才能获得值。因为您的$conn->query($timestamp\u query)
是一个关联数组,您可以访问使用设置键或数字键返回的值。我相信这就是你们所看到的,print\r()
向你们展示了这两个。