Php 如何停止SQL查询中未定义的索引错误?
我真的在寻找这个问题的答案,但没有找到一个具体的解决方案 我最近将一个站点移动到了另一个服务器,必须将PHP.ini设置为记录以前未记录的错误。意识到我可以抑制这个错误,但宁愿消除它的原因 数据库查询:Php 如何停止SQL查询中未定义的索引错误?,php,mysqli,indexing,undefined,Php,Mysqli,Indexing,Undefined,我真的在寻找这个问题的答案,但没有找到一个具体的解决方案 我最近将一个站点移动到了另一个服务器,必须将PHP.ini设置为记录以前未记录的错误。意识到我可以抑制这个错误,但宁愿消除它的原因 数据库查询: $SQL = "SELECT * FROM table WHERE id > 0"; $retid = $conn->query($SQL) or die($mysqli->error.__LINE__); while($row = $retid->fetch_assoc
$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"]);}
以及错误日志文件中的错误:
未定义的索引:var2 in/home/domain/public_html/directory/file.php
第129行,第129行为:
$var2 = $row["var2"]);}
我已经读到,而且我知道,这个错误可能是由未定义的$\u get、$\u POST或$\u会话变量引起的,但是如果每次SQL查询返回空值时都抛出这个错误,那么有没有一种简单的方法来避免产生这些错误,请记住,每次查询都会检索很多值,所以每次都不重复isset的论点
谢谢我知道您说过不想使用isset,但我认为这可能是需要的,因为看起来您试图访问一个不存在的数组元素
while($row = $retid->fetch_assoc()) {
$var1 = isset($row["var1"]) ? $row["var1"] : "";
$var2 = isset($row["var2"]) ? $row["var2"] : "";
}
我还注意到,在两个结束方括号之后都有一个额外的结束括号。这样做
$var2=$row['var2']
确保var2是数据库表中列的正确名称
我不知道为什么要在数组末尾加上括号简言之,不。你要么需要处理错误,要么接受错误