php - 为什么我得到 'Undefined offset: 0' ?

标签 php mysql pdo

我正在开发一个网站,它看起来不错。 然后我打开调试以查看是否有任何错误,我收到了这条消息:

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

最佳答案

您获取与查询匹配的所有记录。如果没有 记录,它将返回一个空数组。显然空数组中没有0元素。

关于php - 为什么我得到 'Undefined offset: 0' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7460639/

相关文章:

PHP PDO 更新查询未在选择查询中更新

php - RSS 提要中的 utf-8 和 htmlentities

php - 如何使用 PHP 运行 PostgreSQL LIKE 查询

php - 如何使用 PHP 和 PDO 将数组插入到单个 MySQL 准备语句中

php - 从登录页面重定向

mysql - Rails - 直接在 SQL 中更新

mysql - 如何从 laravel 5.2 中的表中删除特定行

php - 如何在 Bootstrap 模式(或对话框)和 codeigniter 内查询数据库

javascript - 将数据传递到新的 html 窗口

php - 使用 PDO 准备语句和特定年份的占位符,我无法回应任何结果