SELECT 1 FROM table,奇怪的print_r结果

时间:2016-04-20 03:04:16

标签: php mysql pdo

根据我的阅读,在我的表上执行以下sql命令和fetchAll()时,有6行和11列:

$sql = "SELECT 1 FROM table";
$sqlPrepared = $conn->prepare($sql)
$sqlPrepared->execute()
$result = $sqlPrepared->fetchAll();
$print_r($result);

我应该在每行中获得6行只有一个值,每个值中都有值1。但是,我在每行中得到6行两个值,每个值中的值为1:

Array ( 
  [0] => Array ( 
    [1] => 1 
    [2] => 1 ) 
  [1] => Array ( 
    [1] => 1 
    [2] => 1 ) 
  [2] => Array ( 
    [1] => 1 
    [2] => 1 ) 
  [3] => Array ( 
    [1] => 1 
    [2] => 1 ) 
  [4] => Array ( 
    [1] => 1 
    [2] => 1 ) 
  [5] => Array ( 
    [1] => 1 
    [2] => 1 ) 
) 

问题1:为什么我为每个数组获得2个值而不是1个?

问题2:而不是内部数组

 Array ( 
    [1] => 1 ...

为什么不从[0]开始?:

 Array ( 
    [0] => 1 ...

1 个答案:

答案 0 :(得分:4)

如果您未在->fetchAll()方法上提供任何标记,则包括多维数组行上的关联和数字索引。

因此,当您使用SELECT 1 FROM时,关联索引为1(意思是,列名为1),并且由于数组键是唯一的,因此调整了数字索引,数字索引将值对分配给2