我在尝试找出此问题的原因时遇到了困难,因为导致“未定义索引”警告的潜在原因有很多不同。
Notice: Undefined offset: 0 in D:\xampp\htdocs\inc\php_main.php on line 71
行 $singleresult = $result[0];
是第 71 行。我确信 $result[0]
已设置,因为我已经验证了它两者都带有 print_r
和 isset
检查。我错过了什么吗?我有点希望我只需要在这里进行一次健全性检查。 :)
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/