Как остановить неопределенную ошибку индекса из запроса SQL? - PullRequest
0 голосов
/ 03 марта 2019

Я действительно искал ответ для этого и не нашел конкретного решения ...

Я недавно переместил сайт на другой сервер, и 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:

«Неопределенный индекс: var2 в /home/domain/public_html/directory/file.php в строке 129», строка 129:

$var2 = $row["var2"]);}

Я прочитал, и я получаю,что эта ошибка может быть вызвана неопределенными переменными $ _GET, $ _POST или $ _SESSION, но если она вызывается каждый раз, когда запрос SQL возвращает пустое значение, существует простой способ избежать создания этих ошибок, учитывая, чтоЯ получаю много значений с каждым запросом, поэтому без повторения аргументов isset () каждый раз?

Спасибо

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Сделайте это

$ var2 = $ row ['var2'];

Убедитесь, что var2 является правильным именем столбца в вашей таблице базы данных ИЯ не знаю, почему вы ставите закрывающую скобку ) в конце массива

0 голосов
/ 03 марта 2019

Я знаю, что вы сказали, что не хотите использовать isset(), но я думаю, что это может быть то, что нужно, поскольку похоже, что вы пытаетесь получить доступ к элементу массива, который не существует.

while($row = $retid->fetch_assoc()) {
   $var1 = isset($row["var1"]) ? $row["var1"] : "";
   $var2 = isset($row["var2"]) ? $row["var2"] : "";
}

Я также заметил, что у вас есть то, что выглядит как дополнительная закрывающая скобка после обеих заключительных квадратных скобок.

...