Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Ошибка при создании таблицы

Сообщения:  [1-5] 

 
 автор: GeorgeIV   (09.07.2009 в 11:34)   письмо автору
 
   для: EI   (09.07.2009 в 00:30)
 

А всё потому, что строки в php пишутся по определенным правилам.

Собственно в любом языке текст, содержащий кавычки, не обрамляется в те же кавычки
 совсем уж без изменений. Иначе обрамляющие кавычки невозможно отличить от тех, что
 составляют текст.


Еще раз перечитайте ВНИМАТЕЛЬНО этот текст и Ваш код.

  Ответить  
 
 автор: Trianon   (09.07.2009 в 00:45)   письмо автору
 
   для: EI   (09.07.2009 в 00:30)
 

Что ж...

  Ответить  
 
 автор: EI   (09.07.2009 в 00:30)   письмо автору
 
   для: 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',


ощибка не выдается и таблица успешно создается.

  Ответить  
 
 автор: Trianon   (09.07.2009 в 00:13)   письмо автору
 
   для: EI   (08.07.2009 в 23:32)
 

Листинг на 268 странице показывает SQL-код.
А ошибка у Вас явно уровня php
До SQL дело не доходит.

А всё потому, что строки в php пишутся по определенным правилам.

Собственно в любом языке текст, содержащий кавычки, не обрамляется в те же кавычки совсем уж без изменений. Иначе обрамляющие кавычки невозможно отличить от тех, что составляют текст.

Во вкладке SQL клиента phpMyAdmin этот запрос вполне проходит как есть.
Создание же таблиц мастером из того же phpMyAdmin требует следования указаниям, которые Вы процитировали.

  Ответить  
 
 автор: EI   (08.07.2009 в 23:32)   письмо автору
 
 

При запуске

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"

  Ответить  

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования