【发布时间】:2011-09-18 09:35:23
【问题描述】:
我正在开发一个网站,它看起来不错。 然后我打开调试看看我是否有任何错误,我得到这个消息:
Notice: Undefined offset: 0 in I:\path\to\file\MyFile.class.php on line 105
在那一行你会发现下面的代码:
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result[0]; // line 105
如果我执行print_r(result),我会得到以下结果:
Array (
[0] => Array (
[id] => 3721
[parentID] =>
)
)
Array (
)
如您所见,结果包含两个数组。第一个有数据,第二个没有数据。我从未见过print_r 输出两个这样的数组。我猜这是第二个导致我出现问题的原因。
谁能告诉我为什么第二个数组会潜入?
VAR 转储
array
0 =>
array
'id' => string '3721' (length=4)
'parentID' => null
array
empty
【问题讨论】:
-
"如您所见,结果包含两个数组。" - - 错误的。正如我们所看到的 - 有两个不同的数组 print_r'ed
-
能否请您发布来自
var_dump($result)的结果? -
它实际上不能“潜入”,肯定有问题。也许您在代码中两次调用
print_r?var_dump($result);的输出是什么? -
您应该始终打开调试,然后开发 - 按此顺序。
-
在调用
var_dump()之后确保你exit否则你可能会得到两个或更多的转储。