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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: По запросу из РНР CREATE TABLE не создаётся таблица
 
 автор: bambuk   (14.04.2005 в 00:05)   письмо автору
 
 

Может кто-нибудь подсказать?
Такой скрипт:

<?
include "config.php";
$query="CREATE TABLE 'client'(
'id' INT(5) NOT NULL AUTO_INCREMENT,
'name' VARCHAR(25) NOT NULL DEFAULT '',
PRIMARY KEY ('name')
?> TYPE=MyISAM;"
;
if (
mysql_query($query)) echo "ОК"
else echo 
"ERROR create table";
?> 

при исполнении выдаёт "ERROR create table".
Скрипт config.php правильный,
с запросами SELECT, INSERT, DELETE нет проблем.
Сравнил со скриптом http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=760
ошибки у себя не обнаружил.
А таблица не создаётся. В чём тут проблема?

   
 
 автор: Ziq   (14.04.2005 в 06:54)   письмо автору
 
   для: bambuk   (14.04.2005 в 00:05)
 

Вообще-то у тебя здесь синтаксис нарушен после строки PRIMARY KEY ('name') утебя идет ?> вместо ). Да кстатит для упрощения исправления ошибок существует функция mysql_error(), так что в else лучше написать

print "Произошла ошибка: ".mysql_error().". Далйнейшая работа невозможна";
else;

Вроде все сказал, если что, то обращайся :-)

   
 
 автор: bambuk   (14.04.2005 в 08:40)   письмо автору
 
   для: Ziq   (14.04.2005 в 06:54)
 

Ziq, это я при вводе ошибся на самом деле написано так:

<? 
include "config.php"
$query="CREATE TABLE 'client'( 
'id' INT(5) NOT NULL AUTO_INCREMENT, 
'name' VARCHAR(25) NOT NULL DEFAULT '', 
PRIMARY KEY ('name')
)TYPE=MyISAM;"
;  
if (
mysql_query($query)) echo "ОК"
else echo 
"ERROR create table"
?>

У меня РНР&MySQL под Linux, а в Инет хожу из Win. Код в сообщение набираю вручную вот и ошибся.
Не пойму - в чём дело?
mysql_error()- принял к сведению. Спасибо за совет.

   
 
 автор: cheops   (14.04.2005 в 11:50)   письмо автору
 
   для: bambuk   (14.04.2005 в 08:40)
 

Попробуйте вот так:
<? 
  
include "config.php"
  
$query="CREATE TABLE client( 
  id INT(5) NOT NULL AUTO_INCREMENT, 
  name VARCHAR(25) NOT NULL DEFAULT '', 
  PRIMARY KEY (id) 
  )TYPE=MyISAM"
;   
  if (
mysql_query($query)) echo "ОК"
  else echo 
"ERROR create table"
?>


Вы хотите первичным ключом сделать именно name или id?

   
 
 автор: bambuk   (15.04.2005 в 00:17)   письмо автору
 
   для: cheops   (14.04.2005 в 11:50)
 

Спасибо, cheops.
CREATE TABLE заработал. Ему не нравились: 1-апострофы; 2-PRIMARY KEY (name).
С PRIMARY KEY (id)-пашет, а с PRIMARY KEY (name)-не хочет.

Это что, значит PRIMARY KEY должен быть только числового типа?

   
 
 автор: cheops   (15.04.2005 в 12:43)   письмо автору
 
   для: bambuk   (15.04.2005 в 00:17)
 

Не обязательно числового, просто свою лепту вносит атрибут AUTO_INCREMRNT который тоже должен быть только у одного столбца (числового) и этот столбец должен быть первичным ключём.

   
 
 автор: bambuk   (15.04.2005 в 00:26)   письмо автору
 
   для: cheops   (14.04.2005 в 11:50)
 

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

   
Rambler's Top100
вверх

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