根据我的阅读,在我的表上执行以下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 ...
答案 0 :(得分:4)
如果您未在->fetchAll()
方法上提供任何标记,则包括多维数组行上的关联和数字索引。
因此,当您使用SELECT 1 FROM
时,关联索引为1
(意思是,列名为1
),并且由于数组键是唯一的,因此调整了数字索引,数字索引将值对分配给2
。