Php 为什么PDO query()结果的键包含tablename?

Php 为什么PDO query()结果的键包含tablename?,php,mysql,pdo,Php,Mysql,Pdo,我将mysql与PDO连接如下: $servername='localhost'; $servername='localhost'; $dbname='atlas'; $table='homepage_pv'; $username='root'; $password='mysql'; $conn=null; 试一试{ $conn=新PDO mysql:host=$servername;dbname=$dbname, $username, $password, 大堆 PDO::ATTR_PERSI

我将mysql与PDO连接如下:

$servername='localhost'; $servername='localhost'; $dbname='atlas'; $table='homepage_pv'; $username='root'; $password='mysql'; $conn=null; 试一试{ $conn=新PDO mysql:host=$servername;dbname=$dbname, $username, $password, 大堆 PDO::ATTR_PERSISTENT=>true, PDO::ATTR_ERRMODE=>PDO::ERRMODE_异常, ; } 特例$e{ echo连接mysql失败:.$e->getMessage; $conn=null; 出口 } $result=$conn->query'SELECT*from homepage_pv'->fetchAllPDO::FETCH_name; 回显结果=。json_encode$result; 结果是:

result=[{"homepage_pv.id":"1","homepage_pv.datetime":"2019-08-19 22:56:26"},{"homepage_pv.id":"2","homepage_pv.datetime":"2019-08-19 22:56:28"},{"homepage_pv.id":"3","homepage_pv.datetime":"2019-08-19 23:01:58"}]
键包含表名homepage_pv,这不是预期的; 但我创建PDO的地方如下:

试一试{ $conn=新PDO mysql:host=$servername;, ... ; } ... $result=$conn->query'SELECT*from atlas.homepage_pv'->fetchAllPDO::FETCH_name; 回显结果=。json_encode$result; 结果中的键不再包含tablename,如下所示:

结果=[{id:1,日期时间:2019-08-19 22:56:26},{id:2,日期时间:2019-08-19 22:56:28},{id:3,日期时间:2019-08-19 23:01:58},{id:4,日期时间:2019-08-19 23:08:48}] 在案例1中,我在创建PDO时指定了dbname,在执行查询时省略了它; 在案例2中,情况正好相反


那是什么原因呢?在创建PDO时,如果结果中没有包含tablename的键,如何指定dbname?

在fetchAll中使用PDO::FETCH_ASSOC。如果使用PDO::FETCH_命名,它将返回别名。如果别名不存在,则使用表名。附件供您进一步参考。

我不会称之为文档或文档,但它比官方文档要好。