Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Ошибка в коде


Автор: mr.Anderson 17.7.2006, 19:33
Вот код:
Код

<?php

 $db = "MyDatabase";

 mysql_connect( "localhost", "root" );

  $UserFLDS = "Num PRIMARY KEY AUTO_INCREMENT,
               User TINYTEXT NOT NULL,
               Password LONGBLOB NOT NULL";

  mysql_select_db( $db );

   mysql_query( "CREATE TABLE Users( ".$UserFLDS." )" );
   mysql_query( "INSERT INTO Users( User, Password ) VALUES( 'MyUser1', 'abcABC' )" );

   $res = mysql_query( "SELECT * FROM Users" );
   $cols = mysql_num_fields( $res );
   $rows = mysql_num_rows( $res );

   echo "Êîëîíîê (rows) ".$rows.", ïîëåé (cols) ".$cols;

 mysql_close();

?>

Но это не работает. Говорит, что у mysql_num_fields и mysql_num_rows задан неверный аргумент. Где я ошибся? 

Автор: DemoCode 17.7.2006, 19:41
Стало быть Запрос SELECT вернул пустой ответ, т.к. таблица не создана, а не создана наверное потому что у Num не указан тип поля.
Код

Num PRIMARY KEY AUTO_INCREMENT
 

Автор: mr.Anderson 17.7.2006, 20:00
Все равно не получается.
Код

<?php

 $db = "MyDatabase";

 mysql_connect( "localhost", "root" );

  $UserFLDS = "'Num' LONGINT AUTO_INCREMENT NOT NULL,
               'User' TINYTEXT NOT NULL,
               'Password' LONGBLOB NOT NULL,
               PRIMARY KEY( 'Num' )";

  mysql_select_db( $db );

   mysql_query( "CREATE TABLE 'Users'( ".$UserFLDS." )" );
   mysql_query( "INSERT INTO 'Users'( 'User', 'Password' ) VALUES( 'MyUser1', 'abcABC' )" );

   $res = mysql_query( "SELECT * FROM 'Users'" );
   $cols = mysql_num_fields( $res );
   $rows = mysql_num_rows( $res );

   echo "Êîëîíîê (rows) ".$rows.", ïîëåé (cols) ".$cols;

 mysql_close();

?>

Те же ошибки. 

Автор: DemoCode 17.7.2006, 20:04
Код

$res = mysql_query( "SELECT * FROM 'Users'" );

Попробуй так:
Код

$res = mysql_query( "SELECT * FROM Users" );


Добавлено @ 20:06 
Да и
Код

 mysql_query( "INSERT INTO 'Users'( 'User', 'Password' ) VALUES( 'MyUser1', 'abcABC' )" );

Замени на:
Код

 mysql_query( "INSERT INTO Users( User, Password ) VALUES( 'MyUser1', 'abcABC' )" );
 

Автор: mr.Anderson 17.7.2006, 20:15
Бесполезно. 

Автор: z-END 17.7.2006, 20:20
Код

   mysql_query( "CREATE TABLE Users( ".$UserFLDS." )" ) or die (mysql_error());    
   mysql_query( "INSERT INTO Users( User, Password ) VALUES( 'MyUser1', 'abcABC' )" )or die (mysql_error());

попробуй так... посмотри чем недоволен мускул

Добавлено @ 20:21 
тьфу.. вот так:
Код

$res = mysql_query( "SELECT * FROM 'Users'" )  or die (mysql_error()); 

 

Автор: mr.Anderson 17.7.2006, 20:25
Ого...
Цитата

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 ''Num' LONGINT AUTO_INCREMENT NOT NULL, 'User' TI

Объясните плиз, что это означает. 

Автор: z-END 17.7.2006, 21:22
имхо, ты неправильно создаешь таблицу, мне сейчас лень сервер запускать... зайди в пхпМойАдмин, создай такую-же таблицу, посмотри какой он выжает код и используй его. 

Автор: wsr 18.7.2006, 08:57
Все гораздо проще. Ошибка в SQL запросе из-за неправильных кавычек у имен полей таблицы. Т.е. когда мы создаем таблицу нужно писать 
Код

`field` PARAMS

а не 
Код

'field' PARAMS
 

Автор: Shark 23.7.2006, 03:51
wsr, поддерживаю тебя
sim7, а ты вручную не можешь создать таблицу??? 

Автор: DemoCode 24.7.2006, 09:03
Цитата(wsr @  18.7.2006,  09:57 Найти цитируемый пост)
Все гораздо проще. Ошибка в SQL запросе из-за неправильных кавычек у имен полей таблицы. Т.е. когда мы создаем таблицу нужно писать 

Так ему все об этом и говорят. Только разными словами  smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)