2016-03-31 2 views
-1

Я пытаюсь решить что-то. на этот раз я использую mysqli, а не PDO.ошибка получения в mysqli [пытается получить свойство не-объекта]

Проблема: я получаю сообщение об ошибке: «Замечание: попытка получить свойство не-объекта в ...» Я получаю эту проблему только при установке оператора LIKE или «=» в SQL-запросе , когда я удаляю его, это хорошо.

Что я пытаюсь сделать: В основном, я говорю, если выбран вариант в выпадающем списке, а затем получить информацию об агентствах только в этом конкретном городе.

Вот мой код:

if(isset($_POST["submit"])){ 

    $elpost = $_POST["cityName"]; 
    $sql = "SELECT office_name, office_location, office_phone FROM `easyt_findagents_agents WHERE office_city='$elpost"; 
    $result = $db->query($sql); 

    //Display states list 
    if ($result->num_rows > 0) { 
     // output data of each row 
     while($row = $result->fetch_assoc()) { 
      echo $row['office_name']; 
     } 
    } else { 

     echo "0 results"; 
    } 
} 

любые мысли о том, как исправить это? Я много искал, но ничего не нашел, почему это происходит.

Заранее благодарим всех.

+0

Проконсультируйтесь по следующим ссылкам: http://php.net/manual/en/mysqli.error.php и http://php.net/manual/en/ function.error-reporting.php и примените это к вашему коду. –

+0

* «Я получаю эту проблему только в том случае, когда я помещал оператор LIKE или« = »в запрос sql, когда я удаляю его, это хорошо». * Мы не можем сказать, пока мы точно не знаем, как вы реализовали это , Плюс, недостаточно кода/информации для поддержки вопроса. –

+0

Если вы используете код, который вы опубликовали выше, у вас есть несоответствующие/отсутствующие кавычки в вашем запросе. –

ответ

1

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

Всегда полезно проверить, действительно ли выполнен выполненный запрос, и его легко сделать.

Всегда полезно проверить журнал ошибок PHP, если у вас возникли проблемы, и если вы работаете на сервере LIVE, а отчет об ошибках отключен, добавьте первые 2 строки в свой код во время его отладки, поэтому вы можете увидеть, произошла ли ошибка.

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

if(isset($_POST["submit"])){ 

    $elpost = $_POST["cityName"]; 
    $sql = "SELECT `office_name`, `office_location`, `office_phone` 
      FROM `easyt_findagents_agents` 
      WHERE `office_city` = '$elpost'"; 

    $result = $db->query($sql); 

    // check query worked and report error if it did not 
    if ($result === FALSE){ 
     echo $db->error; 
     exit; 
    } 


    //Display states list 
    if ($result->num_rows > 0) { 
     // output data of each row 
     while($row = $result->fetch_assoc()) { 
      echo $row['office_name']; 
     } 
    } else { 

     echo "0 results"; 
    } 
} 

О, вы также открыты для SQL инъекций. Вам было бы полезно прочитать об этом starting with this

+0

Удивительно, спасибо и всем, кто помог :) –

+0

Да, я знаю об этих инъекциях, я просто хотел попробовать mysqli. Спасибо :) –

Смежные вопросы