我确实已经在寻找答案,却没有找到具体的解决方案...
我最近将站点移到了其他服务器,并且必须将PHP.ini设置为记录以前未记录的错误。意识到我可以抑制此错误,但宁愿消除其原因。
数据库查询:
$SQL = "SELECT * FROM table WHERE id > 0";
$retid = $conn->query($SQL) or die($mysqli->error.__LINE__);
while($row = $retid->fetch_assoc()) {
$var1 = $row["var1"]);
$var2 = $row["var2"]);}
以及error_log文件中的错误:
“未定义索引:/home/domain/public_html/directory/file.php中的var2 在第129行上,而第129行为:
$var2 = $row["var2"]);}
我已经阅读并且知道,此错误可能是由未定义的$ _GET,$ _ POST或$ _SESSION变量引起的,但是如果每次SQL查询返回空值都抛出该错误,是否有一种简单的方法为了避免产生这些错误,请记住我在每个查询中都检索了很多值,因此不必每次都重复isset()参数?
谢谢
答案 0 :(得分:1)
我知道您说过您不想使用isset()
,但我认为这可能是必需的,因为您似乎正在尝试访问不存在的数组元素。
while($row = $retid->fetch_assoc()) {
$var1 = isset($row["var1"]) ? $row["var1"] : "";
$var2 = isset($row["var2"]) ? $row["var2"] : "";
}
我还注意到,在两个方括号之后,您似乎有一个额外的右括号。
答案 1 :(得分:0)
这样做
$ var2 = $ row ['var2'];
确保var2是数据库表中列的正确名称 而且我不知道为什么在数组末尾加上括号)