За последние 24 часа нас посетили 20466 программистов и 1092 робота. Сейчас ищут 876 программистов ...

Пустая строка из phpmyadmin

Тема в разделе "PHP для новичков", создана пользователем Дато, 24 янв 2023.

  1. Дато

    Дато Новичок

    С нами с:
    11 ноя 2021
    Сообщения:
    47
    Симпатии:
    0
    День добрый подскажите пожалуйста что не так?
    PHP:
    1. $sql="SELECT * FROM catalog  WHERE type='$inputSearch';";
    если использовать переменную, возвращает пустую строку. но если ее изменить на текст

    PHP:
    1. $sql="SELECT * FROM catalog  WHERE type='Артур';";
    то все работает. не могу понять.
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Или тип переменной кривой, если она вообще существует, или значение.
    --- Добавлено ---
    Значение может быть в др. кодировке или просто левым. Также значение может портить текст запроса.
     
  3. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    847
    Симпатии:
    131
    phpmyadmin ничего не знает о переменных из твоего кода, приведённый код вообще писан на PHP, толи название темы не едет, толи я...
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Новички часто не различают pma и мускул/машу. Наверно, тот же случай. Я уже не обращаю на это внимания.
    --- Добавлено ---
    А то получается, что у ТСа pma понял это:
    PHP:
    1. $sql="SELECT * FROM catalog  WHERE type='Артур';";
     
    don.bidon нравится это.
  5. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    847
    Симпатии:
    131
    мдя, надо в терминологию окунуть чутка ТС-а )
     
    miketomlin нравится это.
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    посмотри перед запросом что в $inputSearch
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    die($sql);

    если xdebug не настроен, то придется такими вставками узнавать в чем проблема
     
  8. Дато

    Дато Новичок

    С нами с:
    11 ноя 2021
    Сообщения:
    47
    Симпатии:
    0
    Спасибо, я в курсе но и ты понял. что запрос идет из php в БД. если это кретично то я могу и поменять
    --- Добавлено ---
    вот что на выходе в sql получается. переменная подтягивается.
    PHP:
    1. SELECT * FROM catalog  WHERE type='Артур';
    --- Добавлено ---
    чуть выше написал. в том и суть что запрос уходит нормально. а вот возвращается пустым.
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Изначально вам про $inputSearch писали.
    PHP:
    1. var_dump($inputSearch);
    --- Добавлено ---
    'Артур' вижу. Значит с кодировкой проблемы. Если, конечно, это была $sql со значением $inputSearch.
     
  10. Дато

    Дато Новичок

    С нами с:
    11 ноя 2021
    Сообщения:
    47
    Симпатии:
    0
     
  11. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Попробуйте для начала в коде сделать так (должно работать):
    PHP:
    1. $inputSearch='Артур';
    2. $sql="SELECT * FROM catalog  WHERE type='$inputSearch';";
    --- Добавлено ---
    В первой команде имя переменной $inputSearch на всяк. случай заново наберите (не копируйте).
     
  12. Дато

    Дато Новичок

    С нами с:
    11 ноя 2021
    Сообщения:
    47
    Симпатии:
    0

    так работает. а воттак нет
    PHP:
    1. $inputSearch = $_POST['name'];
    2. $sql="SELECT * FROM catalog  WHERE type='$inputSearch';";
     
  13. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Двухбайтовая кодировка (UTF-8, UTF-16). Походу и в файле скрипта (когда вы хардкодили в нем 'Артур'), и в БД однобайтовая кодировка.
     
    artoodetoo нравится это.
  14. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
  15. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    847
    Симпатии:
    131
    И про SQL-иньекиции почитай.
     
  16. saider2011

    saider2011 Новичок

    С нами с:
    17 дек 2021
    Сообщения:
    15
    Симпатии:
    1
    Попробуй переменную взять в фигурные скобки, может поможет
    PHP:
    1. $sql="SELECT * FROM catalog  WHERE type='{$inputSearch}';";
    Или так
    PHP:
    1. $sql="SELECT * FROM catalog  WHERE type='".$inputSearch."';";
     
  17. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    Ну ну, давай экспериментируй, че-нить да подойдёт... Норм подход.. Лучше доках посмотреть