3

データベースにインポートしようとすると、このエラーが発生します

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、4 行目の '('id') ) TYPE=MyISAM AUTO_INCREMENT=6' 付近で使用する正しい構文を確認してください。

 DROP TABLE IF EXISTS `categories`;
 CREATE TABLE `categories` (
 `id` int(5) NOT NULL auto_increment,
  `category` varchar(50) NOT NULL default '',
  PRIMARY KEY  ('id')
  ) TYPE=MyISAM AUTO_INCREMENT=6 ;
4

4 に答える 4

3

'ここを使用しています

PRIMARY KEY  ('id')

idこの場合、列名ではなく文字列です。代わりにバッククォートを使用してください。

PRIMARY KEY  (`id`)
于 2013-05-17T11:06:29.743 に答える
2

idコードには 2 つの問題があります。主キー宣言の前後の一重引用符を削除してください。バックティックを使用することも、何も使用しないこともできます。

を次のように変更Type=MyISAMします。

ENGINE=MyISAM

MySQL ドキュメントから:

古い用語 TYPE は下位互換性のために ENGINE の同義語としてサポートされていますが、ENGINE が優先用語であり、TYPE は非推奨です。

したがって、スクリプトは次のようになります。

DROP TABLE IF EXISTS `categories`;
 CREATE TABLE `categories` (
 `id` int(5) NOT NULL auto_increment,
  `category` varchar(50) NOT NULL default '',
  PRIMARY KEY  (id)
  ) ENGINE=MyISAM AUTO_INCREMENT=6 ;

デモで SQL Fiddle を参照してください

于 2013-05-17T11:06:27.620 に答える
2

これを試して:

DROP TABLE IF EXISTS `categories`;
 CREATE TABLE `categories` (
 `id` int(5) NOT NULL auto_increment,
  `category` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
  ) ENGINE=MYISAM AUTO_INCREMENT=6

問題はPRIMARY KEY ('id')、引用符の代わりに逆引用符を使用する必要があることです

于 2013-05-17T11:09:49.400 に答える
-2

1064 SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、1 行目の 'FROM disc_disc WHERE disc_id=NULL' 付近で使用する正しい構文を確認してください

    // zjistit jmeno diskuse
$disc_name = "";
$sql = sprintf("SELECT disc_id, disc_name, " .
    "FROM disc_disc " .
    "WHERE disc_id=%s",
quote_smart($disc_id));
$db->setQuery($sql);
$rec = $db->loadObjectList();

if ($db->getErrorNum()) {
    JError::raiseWarning( 500, $db->stderr() );
}
于 2016-02-09T20:50:21.783 に答える