За последние 24 часа нас посетили 30849 программистов и 1444 робота. Сейчас ищет 881 программист ...

Регистр в SQL-запросе

Тема в разделе "PHP для новичков", создана пользователем Freakmeister, 6 авг 2010.

  1. Freakmeister

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

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Есть запрос:
    [sql]SELECT name FROM mkp_stats WHERE name='$name' LIMIT 1[/sql]
    Допустим, в базе данных в колонке name указано так: ShadRex, а человек вписывает $name в форму так: shadrex. В таком случае запрос не проходит. Можно как-то сделать, чтобы в запросе не учитывался регистр? Или это надо создавать отдельную колонку в бд - low_name, куда писать имя в нижнем регистре?
     
  2. Михаил

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

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    Наверное
    Код (Text):
    1. $name=strtolower($name);
     
  3. Freakmeister

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

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Ну а в бд в колонке name написано: SHADREX - и всё, запрос не пройдёт. Я же не могу написать так:
    Код (Text):
    1. $name=strtolower($name);
    2. SELECT name FROM mkp_stats WHERE strtolower(name)='$name' LIMIT 1
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Freakmeister
    SELECT name FROM mkp_stats WHERE strtolower(`name`)=strtolower('$name') LIMIT 1

    Happy! Happy!
    Joy! Joy!
     
  5. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    а еще исполльзовать _general_ci для своей кодировки и вообще не париться ;)
     
  6. Михаил

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

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    а ты пробовал?
     
  7. Михаил

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

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    Ты сейчас не прав...
     
  8. Freakmeister

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

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Естественно пробовал. Регистр имеет значение.

    igordata,
    Код (Text):
    1. ERROR: Database error.
    2. Cannot execute the query: SELECT name FROM mkp_stats WHERE strtolower(`name`)=strtolower('maestromagnifico') LIMIT 1
    3. MySql Error returned: FUNCTION phpbb.strtolower does not exist
    4. MySql Error code: 1305
     
  9. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    SELECT `name` FROM mkp_stats WHERE LOWER(`name`)=LOWER('$name') LIMIT 1

    А так?
     
  10. Freakmeister

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

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Работает. Чмаке.)
     
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    просто спутали пхп функу с мускульной :D