php - PDO::fetchAll 索引上的未定义索引警告

标签 php mysql pdo indexing undefined

我在尝试找出此问题的原因时遇到了困难,因为导致“未定义索引”警告的潜在原因有很多不同。

Notice: Undefined offset: 0 in D:\xampp\htdocs\inc\php_main.php on line 71

$singleresult = $result[0]; 是第 71 行。我确信 $result[0] 已设置,因为我已经验证了它两者都带有 print_risset 检查。我错过了什么吗?我有点希望我只需要在这里进行一次健全性检查。 :)

function execute ($sql, $bindingsarray) {
    $pdostmt = $this->db->prepare($sql);
    $pdostmt->execute($bindingsarray);
    $result = $pdostmt->fetchAll(PDO::FETCH_ASSOC);
    print_r($result);
    if (isset($result[0]) && isset($result[1])); {
        $singleresult = $result[0];
        return $singleresult;
    }
    return $result;
}

最佳答案

您的变量未设置,并且您没有注意到,因为您的 if 行是错误的:

if (isset($result[0]) && isset($result[1])); {
                                           ^ your problem
    $singleresult = $result[0];
    return $singleresult;
}

等同于:

if (isset($result[0]) && isset($result[1])) {

}
$singleresult = $result[0];
return $singleresult;

因为您在条件后面加上了;。只需将其删除,结果就应该是您所期望的:

if (isset($result[0]) && isset($result[1])) {

关于php - PDO::fetchAll 索引上的未定义索引警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23945209/

相关文章:

php - JSON 对象的索引数组元素

php - 为什么 PHP 取代 .如果它是 $_GET 中的键,是否带有下划线?

mysql - 使用 PHP 加速大型文本数据和文件的算法

php - PDO 整数可为空值问题

php - 如何修复更新 MySQL 表中的信息时出现的错误?

php - 将 json 数据输入智能建议插件

mysql - SQL 计算两个日期之间有多少条记录并返回该计数

mysql - 在 phpMyAdmin 中添加约束

php - 当我用 PDO 重写我的代码时,计数不起作用

PHP PDO 和存储函数