|
|
|
| При запуске
CREATE TABLE articles (
id_article INT NOT NULL AUTO_INCREMENT,
name TINYTEXT NOT NULL,
description TINYTEXT NOT NULL,
html_title TINYTEXT NOT NULL,
html_keywords TINYTEXT NOT NULL,
pos MEDIUMINT NOT NULL,
hide ENUM('show','hide') DEFAULT 'show',
id_page MEDIUMINT NOT NULL,
PRIMARY KEY (id_article),
KEY id_page (id_page)
) TYPE=MyISAM;
|
( листинг 7.2, стр. 268, "PHP 5 Практика создания web-сайтов" 2006 г.)
получаю ошибку:
Parse error: syntax error, unexpected T_STRING in ...table_articles2.php on line 11
----> hide ENUM('show','hide') DEFAULT 'show',
Почему?
phpMyAdmin тоже ругается на 'show': #1067 - Invalid default value for 'hide'
Кстати, в phpMyAdmin написано:
"Для значений по умолчанию просто введите единственное значение без экранирования и квотирования, используя этот формат: a" | |
|
|
|
|
|
|
|
для: EI
(08.07.2009 в 23:32)
| | Листинг на 268 странице показывает SQL-код.
А ошибка у Вас явно уровня php
До SQL дело не доходит.
А всё потому, что строки в php пишутся по определенным правилам.
Собственно в любом языке текст, содержащий кавычки, не обрамляется в те же кавычки совсем уж без изменений. Иначе обрамляющие кавычки невозможно отличить от тех, что составляют текст.
Во вкладке SQL клиента phpMyAdmin этот запрос вполне проходит как есть.
Создание же таблиц мастером из того же phpMyAdmin требует следования указаниям, которые Вы процитировали. | |
|
|
|
|
|
|
|
для: Trianon
(09.07.2009 в 00:13)
| | Спасибо за ответ.
Вот полный код, включая PHP:
<?php
include_once "connect.php";
mysql_query('
CREATE TABLE articles (
id_article INT NOT NULL AUTO_INCREMENT,
name TINYTEXT NOT NULL,
description TINYTEXT NOT NULL,
html_title TINYTEXT NOT NULL,
html_keywords TINYTEXT NOT NULL,
pos MEDIUMINT NOT NULL,
hide ENUM('show','hide') DEFAULT 'show',
id_page MEDIUMINT NOT NULL,
PRIMARY KEY (id_article),
KEY id_page (id_page)
) TYPE=MyISAM;
');
?>
|
При удалении строки
hide ENUM('show','hide') DEFAULT 'show',
|
ощибка не выдается и таблица успешно создается. | |
|
|
|
|
|
|
|
для: EI
(09.07.2009 в 00:30)
| | Что ж... | |
|
|
|
|
|
|
|
для: EI
(09.07.2009 в 00:30)
| |
А всё потому, что строки в php пишутся по определенным правилам.
Собственно в любом языке текст, содержащий кавычки, не обрамляется в те же кавычки
совсем уж без изменений. Иначе обрамляющие кавычки невозможно отличить от тех, что
составляют текст.
|
Еще раз перечитайте ВНИМАТЕЛЬНО этот текст и Ваш код. | |
|
|
|