За последние 24 часа нас посетили 24258 программистов и 1682 робота. Сейчас ищут 1272 программиста ...

Cимвол "собака", "собачка", "@" вызывает ошибку при работе запроса

Тема в разделе "MySQL", создана пользователем dedyukhinnp, 21 окт 2024 в 10:51.

  1. dedyukhinnp

    dedyukhinnp Новичок

    С нами с:
    Пятница
    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте, уважаемые!

    У меня есть база данных, она состоит из 4 столбиков.
    Имя,
    Телефон,
    E-mail,
    Пароль

    У меня есть поле, в которое я ввожу текст (номер телефона или E-mail)
    Это поле = $telefon_pochta
    И есть кнопка, которая выполняет SQL-запрос.

    Выполняется такой допустим запрос:
    "SELECT * FROM users where telefon like $telefon_pochta or pochta like $telefon_pochta"

    Предположим, в базе есть запись
    Вася, 89221234567, vasya@vasya.info, 12345

    Если в поле я ввожу 89221234567 и нажимаю кнопку, то на экране вижу данные о Васе (успешно).
    Если в поле я ввожу vasya@vasya.info, то сайт падает в ошибку.

    Я так понимаю из-за знака "собачка", "собака", "@"?
     
  2. dedyukhinnp

    dedyukhinnp Новичок

    С нами с:
    Пятница
    Сообщения:
    6
    Симпатии:
    0
    В общем решил, что необходимо сделать так, чтобы изначально не было в таблице записей, содержащих знак "@", для этого добавил корректировку в запрос, отправляющий данные в таблицу.

    Чтобы везде, где есть "@" заменялось на нижнее подчёркивание "_".
    Вот например:
    $pochta = str_replace("@", "_", $pochta);

    А потом, соответственно при поиске также, если пользователь вводит в поле что-то, где есть "@", то оно подставляется на "_"
     
  3. dedyukhinnp

    dedyukhinnp Новичок

    С нами с:
    Пятница
    Сообщения:
    6
    Симпатии:
    0
    Не в собачке "@" было дело.
    Даже если любую букву вводить, то тоже была бы ошибка.

    Причина - ошибка при составлении запроса.
    Забыл добавить кавычки одинарные ('$telefon_pochta')
    "SELECT * FROM users where telefon like '$telefon_pochta' or pochta like '$telefon_pochta'"
     
  4. l_2001

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

    С нами с:
    9 дек 2014
    Сообщения:
    78
    Симпатии:
    3
    первый вопрос - а какой формат поля где хранится e-mail? у меня крутится несколько задач работающих с e-mail и ни разу не было проблем с отработкой...
     
    dedyukhinnp нравится это.
  5. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    378
    Симпатии:
    70
    Адрес:
    Бавария, Германия
    Добрый день!
    Тип данных в поле где хранится e-mail: varchar
    Длина см. ниже:
    https://www.rfc-editor.org/errata_search.php?rfc=3696&eid=1690
    Удачи!
     
    dedyukhinnp нравится это.