Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何停止SQL查询中未定义的索引错误?_Php_Mysqli_Indexing_Undefined - Fatal编程技术网

Php 如何停止SQL查询中未定义的索引错误?

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

我真的在寻找这个问题的答案,但没有找到一个具体的解决方案

我最近将一个站点移动到了另一个服务器,必须将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"]);}
以及错误日志文件中的错误:

未定义的索引: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是数据库表中列的正确名称
我不知道为什么要在数组末尾加上括号

简言之,不。你要么需要处理错误,要么接受错误