【发布时间】:2014-06-15 18:14:45
【问题描述】:
我的应用程序使用了许多数组和许多 sql 查询。我的问题在这段代码中:
我执行这个查询:
$select = "SELECT name, surname FROM table"
$query = $connection->query($select);
$array = $query->fetchAll(PDO::FETCH_ASSOC);
然后,我将值传递到这样的数组中:
$array_dump= array(
array(
array('name' => 'name'),
array('content' => $array['name'])
),
array(
array('name' => 'surname'),
array('content' => $array['surname'])
),
)
事实上,如果你不设置error_reporting(),这可以正常工作。如果我打开,我得到这个错误:
注意:未定义索引:第 27 行 C:\AppServ\www\test.php 中的姓氏
这实际上发生了,因为没有设置数组。也就是说,surname 值为空。
我的麻烦:
我必须使用这种方法,但我不能使用这样的方法(出错):
array(
array('name' => 'name'),
array('content' => (isset($array['surname']) ? $array['surname'] : '')
)
我的问题
如您所见,这不是错误,但不应出现“通知”(因为未定义 INDEX...)。有没有办法从那个查询中默认设置所有数组键,即使值是NULL,比如“姓”字段?那将是最快的解决方案。我一直在寻找这个,但没有得到任何答案。
谢谢!
【问题讨论】:
-
这是不正常的,即使db中的surename不存在,应该赋值为空
-
您是否在遍历查询结果集?您应该使用
$array[0]['name']等等,其中0是您正在解析的行的索引
标签: php mysql arrays multidimensional-array