Проблема с запросом...

MW
На сайте с 07.09.2011
Offline
55
477

Добрый вечер всем!

Ткните пальцем,что не так делаю?

есть такой запрос,добавляю в поле некоторе значение ( $this->db->query("INSERT INTO " . DB_PREFIX . "serials SET key = '" . $key . "'"); ) выдает ошибку:

Notice: Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key = '65'' at line 1

Error No: 1064
INSERT INTO oc_serials SET key = '65' in /var/www/system/database/mysql.php on line 50

не пойму что не так с этим полем(key), вот если создать рядом поле например keyy и изменить запрос в это поле(keyy) то все работает,просветите,гуру

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

SET применяется для UPDATE запросов.

Синтаксис ИНСЕРТа такой:

INSERT INTO table1(`field1`, `field2`, `field3`) VALUE('1', '2', '3')

Вообщем курите гугл;)

Подпись))
Rulin
На сайте с 16.01.2008
Offline
133
#2

INSERT INTO PREFIX_serials (key) VALUES('65')

И не забудте значение $key, профильтровать от возможности sql инъекции, например функцией mysql_real_escape_string, или ее аналогом в используемой вами db библиотекой

Bitcoin Debit Card
MW
На сайте с 07.09.2011
Offline
55
#3
Милованов Ю.С:
SET применяется для UPDATE запросов.
Синтаксис ИНСЕРТа такой:
INSERT INTO table1(`field1`, `field2`, `field3`) VALUE('1', '2', '3')

Вообщем курите гугл;)

использую опенкарт,там все инсерты с сетом,интересно,что в поле keyy запрос проходит,а в рядом стоящее поле key ошибку выдает

Rulin
На сайте с 16.01.2008
Offline
133
#4
MilkeyWay:
использую опенкарт,там все инсерты с сетом,интересно,что в поле keyy запрос проходит,а в рядом стоящее поле key ошибку выдает

Если поле key типа integer, по пробуйте не оборачивать значение в кавычки, т.к. тем самым вы его преобразуете в строку, может быть в этом проблема (хотя конечно mysql понимает такие вещи самостоятельно)

MW
На сайте с 07.09.2011
Offline
55
#5
Rulin:
Если поле key типа integer, по пробуйте не оборачивать значение в кавычки, т.к. тем самым вы его преобразуете в строку, может быть в этом проблема (хотя конечно mysql понимает такие вещи самостоятельно)

varchar,как и поле в котором все норм...

п.с я конечно могу удалить это проблемное поле и вместо него исользовать поле с которым нету проблем,но хочется понять от чего возникает эта проблема

siv1987
На сайте с 02.04.2009
Offline
427
#6

`key` = '65'

KEY служебное слово, и его надо обрамлять в обратные кавычки

MW
На сайте с 07.09.2011
Offline
55
#7
siv1987:
`key` = '65'

KEY служебное слово, и его надо обрамлять в обратные кавычки

хех,теперь буду знать,спасибо!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий