Mysql запрос

Тема в разделе "PHP", создана пользователем hipachka, 4 янв 2012.

Модераторы: latteo
  1. hipachka

    hipachka

    Регистр.:
    16 мар 2009
    Сообщения:
    391
    Симпатии:
    77
    Подскажите кто-нибудь в чем может быть проблема. Фреймворк Code-igniter.

    Код:
    $query = $this->db->query("SELECT *  FROM users WHERE 'top_id' = 'hipachka'");
     
    $query = $this->db->query("SELECT 'one', 'two', 'three' FROM topusers WHERE 'top_id' LIKE '%hipachka%'");
    Поля таблицы пробовал varchar и tinytext.
    Результат пустой массив. Поля есть, данные есть, запрос проходит но массив пустой. По цифровым значениям выборка нормально идет.

    UPD: Ответ найден.
    P.S. Прошу прощения за постинг в этом разделе не сразу увидел раздел mysql наверное лучше было туда поместить эту тему.
     
  2. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    360
    Симпатии:
    243
    Если top_id - это поле в таблице, то вместо апострофов следует использовать символ [`] или обойтись вообще без них.WHERE `top_id`
     
  3. HEPB

    HEPB Постоялец

    Регистр.:
    24 июн 2009
    Сообщения:
    111
    Симпатии:
    8
    лучше единообразно делать. если поле
    top_id взяли в символы ` `, тогда уж и названия таблиц users и topusers взять в эти же кавычки. Либо не использовать их вовсе.
     
  4. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    ну и по аналогии слова 'one', 'two', 'three' также нужно брать в кавычки `` а не ''
    а то такой запрос выдаст лишь одни строковые значения 'one', 'two' и 'three'

    и весь запрос лучше брать в одинарные кавычки 'SELECT ....' а не двойные как сейчас "SELECT ...."
    php-интерпретатор в строках заключенных в одинарных кавычках не пытается распознавать переменные что в свою очередь добавит доли производительности
     
    hipachka нравится это.