За последние 24 часа нас посетил 22031 программист и 988 роботов. Сейчас ищут 645 программистов ...

SELECT с русскими символами

Тема в разделе "MySQL", создана пользователем vlad.ns, 12 сен 2019.

  1. vlad.ns

    vlad.ns Новичок

    С нами с:
    12 сен 2019
    Сообщения:
    2
    Симпатии:
    0
    Получаю содержимое формы

    PHP:
    1. $street = $_POST['street'];
    2. $number = $_POST['number'];
    Далее вывожу его

    PHP:
    1. echo "<h2>Найдено ".$counter." объектов по адресу ".$street." ".$number."</h2>";
    И наконец подставляю в SQL запрос...

    PHP:
    1.  $sql3 = mysqli_query($database, 'SELECT * FROM realestate WHERE street='.$street.' AND housenumber='.$number.' ORDER BY eid DESC');
    Но запрос не срабатывает!

    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home/stoliza/icrm.nasha-stolica.com/html/search-object.php on line 47

    Пробовал вставлять в запрос не переменные, а тестовые значения. При цифровых работает, при буквенных (кириллица) - не работает.

    ПОЧЕМУ?
     
    #1 vlad.ns, 12 сен 2019
    Последнее редактирование модератором: 13 сен 2019
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    потому что ошибка в запросе и дескриптора соединения с БД просто нет. Отсюда и "expects parameter 1 to be mysqli_result"
    Возьмите за правило сохранять запрос в отдельную переменную (а не пхать его сразу в mysqli_query()), для того что бы всегда его можно было вывести на экран и посмотреть что с ним не так.
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    В street, видимо, строка. Где кавычки в запросе вокруг значения этого параметра?

    Существование POST-параметров нужно проверять, прежде чем их использовать. И срочно читаем про SQL-инъекции (и про то, как с ними можно бороться).
    --- Добавлено ---
    Не. Сначала все запросы, а потом уже вывод.
     
    yanuzay нравится это.
  4. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    не важно что это кириллица, важно что там тип данных строковый .
    В sql запросах строковые значения должны в кавычках.
     
  5. vlad.ns

    vlad.ns Новичок

    С нами с:
    12 сен 2019
    Сообщения:
    2
    Симпатии:
    0
    Спасибо, работает

    Я имел в виду вывод данных для проверки, неправильно выразился
    --- Добавлено ---
    Да, строка, спасибо!
    SQL инъекций не боюсь т.к. система для внутреннего использования
    --- Добавлено ---
    Модераторы, удалите вложение пожалуйста, спасибо
    Тему можно закрыть
     
  6. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    если ты один будешь ее использовать, то норм.
    иначе рискуешь