Переменная data может быть не определена

0

Я работаю над функцией, которая отображает данные, но я все время предупреждаю: "Данные переменных", возможно, не были определены "

  function getAllData() {
        $query = "SELECT * FROM patient, person WHERE patient.Patient = person.Personnummer ";
        if(!$sql = mysql_query($query)) {
            throw new exception("Error: CAn not execute the query.");
        } else {
            $num = mysql_num_rows($sql);
            if($num>0)
            {
                for($i=0; $i<$num; $i++)
                {
                    $data[$i] = mysql_fetch_array($sql);
                }
            }
        }
        return $data;  //<--Variable 'data' might have not been defined
    }
  • 1
    Если ваш SQL-запрос даст пустой результат, он будет неопределенным. Также, пожалуйста, прекратите использовать функции mysql_ и переключитесь на mysqli или PDO.
  • 0
    Хорошо, спасибо.
Теги:
for-loop
phpstorm

1 ответ

1
Лучший ответ

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

Чтобы избежать этого, убедитесь, что он всегда определен:

function getAllData() {
    $data = array();
    $query = "SELECT * FROM patient, person WHERE patient.Patient = person.Personnummer ";
    ...

Теперь из вашей функции будет возвращен пустой массив, если, например, строки не найдены. В вашем текущем коде php генерирует предупреждение во время выполнения о неопределенной переменной при запуске вашего скрипта, и никакие строки не найдены.

  • 0
    Большое спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню