Тема: Не працює sql запит.

Є значить такий кусочок коду:

$desc = base64_encode("бла бла бла");

$Check = $this->db->query("SELECT id FROM directions WHERE univer = '".$univer_id."' AND desc = '".$desc."'");    

А от, що я отримую:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'desc = '0LHQu9CwINCx0LvQsCDQsdC70LA='' at line 1

SELECT id FROM directions WHERE univer = '1' AND desc = '0LHQu9CwINCx0LvQsCDQsdC70LA='

Структура таблиці directions:
http://i2.minus.com/iPS7vp9HNhZZw.png

sql
CREATE TABLE IF NOT EXISTS `directions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `abit_id` int(11) NOT NULL,
  `univer` int(11) NOT NULL,
  `ql` int(11) NOT NULL,
  `desc` text COLLATE cp1251_bin NOT NULL,
  `so` varchar(10) COLLATE cp1251_bin NOT NULL,
  `lv` varchar(10) COLLATE cp1251_bin NOT NULL,
  `score_so` varchar(10) COLLATE cp1251_bin NOT NULL,
  `score_lv` varchar(10) COLLATE cp1251_bin NOT NULL,
  `subjects` varchar(255) COLLATE cp1251_bin NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin AUTO_INCREMENT=4 ;

Я ніфіга не розумію. В чому може бути проблема ??

2

Re: Не працює sql запит.

desc - ключове слово. Спробуйте

SELECT id FROM directions WHERE univer = '1' AND `desc` = '0LHQu9CwINCx0LvQsCDQsdC70LA='

Re: Не працює sql запит.

koala написав:

desc - ключове слово. Спробуйте

SELECT id FROM directions WHERE univer = '1' AND `desc` = '0LHQu9CwINCx0LvQsCDQsdC70LA='

Дякую. Буду знайти на майбутнє.

4 Востаннє редагувалося koala (12.06.2014 15:31:52)

Re: Не працює sql запит.

На майбутнє - візьміть за правило всюди екранувати все, що можна:

  • дані, щоб не було code injection на кшталт
    $univer = "'; DROP TABLE `directions`;"
    mysql_real_escape_string-ом;

  • назви таблиць - зворотніми апострофами;

  • і весь запит - крапкою з комою.

5

Re: Не працює sql запит.

На майбутнє - візьміть за правило всюди екранувати все, що можна:

А я раджу використовувати pdo =)
Або уже готові класи для роботи з базами ;) досить зручно

Подякували: koala, miroslav.chandler2

6

Re: Не працює sql запит.

koala написав:

На майбутнє - візьміть за правило всюди екранувати все, що можна:

  • дані, щоб не було code injection на кшталт
    $univer = "'; DROP TABLE `directions`;"
    mysql_real_escape_string-ом;

  • назви таблиць - зворотніми апострофами;

  • і весь запит - крапкою з комою.

Можна більеш інформації про захист від зовнішніх впливів.

Подякували: quez1

7

Re: Не працює sql запит.

Можна більеш інформації про захист від зовнішніх впливів.

почитай про SQL injection

Подякували: koala, miroslav.chandler2