|
|
|
| Здравствуйте, возникают проблемы при выполнении запроса:
$query = "INSERT INTO news VALUES
(DEFAULT, '{$news_title}', '{$news_text}', '{$news_date}', {$news_pos}, '{$news_visibility}')";
Таблица news определяется так:
CREATE TABLE news (
id_news int(32) not null auto_increment,
news_title varchar(255),
news_text mediumtext,
news_date varchar(255),
news_pos int,
news_visibility enum('visible', 'invisible'),
PRIMARY KEY (id_news)
);
Примерное содержимое $query:
INSERT INTO news VALUES (DEFAULT, 'test', 'test', '15 09 2005', 1, 'visible')
Выдает ошибку:
You have an error in your SQL syntax near 'DEFAULT, 'test', 'test', '15 09 2005', 1, 'visible')' at line 2
Если заменить DEFAULT на какое-нибудь число, скажем, 23 – запрос выполняется. Такая же ситуация с похожим запросом возникает в других подсистемах сайта. UPDATE, DELETE работают корректно. Не подскажите в чем может быть причина.
Заранее спасибо за ответ. | |
|
|
|
|
|
|
|
для: antf
(15.09.2005 в 21:28)
| | DEFAULT используеться при создании таблицы, например:
mysql> CREATE TABLE news (
id_news int(32) not null auto_increment,
news_title varchar(255),
news_text mediumtext,
news_date varchar(255),
news_pos int DEFAULT 999,
news_visibility enum('visible', 'invisible'),
PRIMARY KEY (id_news);
|
В Вашем случае запрос для добавления записи должен выглядеть так:
mysql> INSERT INTO news VALUES ('', 'test', 'test', '15 09 2005', 1, 'visible');
|
Если я ошибаюсь меня может кто поправит! | |
|
|
|
|
|
|
|
для: Artemy
(15.09.2005 в 21:43)
| | Вообще рекомендуется писать NULL, хотя можно и 0 и пустую строку
mysql> INSERT INTO news VALUES (NULL, 'test', 'test', '15 09 2005', 1, 'visible');
|
Если вы хотите, чтобы поле приняло значение по умолчению, т.е. произошло инкрементное увеличение значение без явного указания значения поля, следует перед VALUES привести имена таблиц, опустив в нём id_news
mysql> INSERT INTO news (news_title,news_text,news_date,news_pos,news_visibility) VALUES ('test', 'test', '15 09 2005', 1, 'visible');
|
| |
|
|
|
|
|
|
|
для: cheops
(15.09.2005 в 23:06)
| | После замены Default на NULL все становится на свои места. Странно, я ведь очень долго использовал эту конструкцию, в том числе и на сайтах, которые были размещены на этом хостинге Peterhost. Проблем не было. Такую форму указания первичного ключа нашел, просматривая код какого-то скрипта и взял на вооружение. | |
|
|
|
|
|
|
|
для: antf
(15.09.2005 в 23:27)
| | А да действительно можно, но там была какая-то тонкость, не то с версией связаная, не то с тем, что поле должно быть объявлено с атрибутом DEFAULT... в общем было какое-то хитрое правило... | |
|
|
|
|