0

このエラーが発生し続けます:

SQL 構文にエラーがあります。2 行目の「Name int(10) NOT NULL, Middle Name varchar(10) NOT NULL, Last Name varch」の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

そして、どのような間違いを犯したのかわかりません...

<?php 
mysql_connect('klaic.db.11427125.hostedresource.com', 'klaic', '*******')
or die (mysql_error());
mysql_select_db('klaic')
or die (mysql_error());
mysql_query("create table account(
   Fist Name int(10) NOT NULL, 
   Middle Name varchar(10) NOT NULL, 
   Last Name varchar(10) NOT NULL,
   Email varchar(55) NOT NULL,
   Comfirm Email varchar(55) NOT NULL,
   D.O.B varchar(10) NOT NULL,
   ID int(11) NULL,  
   PRIMARY KEY (ID)
)") or die (mysql_error());
echo "Complete.";
?>
4

4 に答える 4

4

列名にスペースを含める場合は、これはお勧めできません。目盛りで囲む必要があります。

mysql_query("create table account(
   `Fist Name` int(10) NOT NULL, 
   `Middle Name` varchar(10) NOT NULL, 
   `Last Name` varchar(10) NOT NULL,
   `Email` varchar(55) NOT NULL,
   `Comfirm Email` varchar(55) NOT NULL,
   `D.O.B` varchar(10) NOT NULL,
   `ID` int(11) NULL,  
   PRIMARY KEY (ID)
)") or die (mysql_error());
于 2013-07-15T15:03:05.940 に答える
2

Schema Object Namesに記載されているとおり:

データベース、テーブル、インデックス、カラム、エイリアス、ビュー、ストアド プロシージャ、パーティション、テーブルスペース、およびその他のオブジェクト名を含む MySQL 内の特定のオブジェクトは、識別子と呼ばれます。

[削除]

識別子は内部で Unicode に変換されます。次の文字が含まれる場合があります。

  • 引用符なしの識別子で使用できる文字:

    • ASCII: [0-9,az,AZ$_] (基本的なラテン文字、数字 0-9、ドル、アンダースコア)

    • 拡張: U+0080 .. U+FFFF

  • 引用符で囲まれた識別子で許可される文字には、U+0000 を除く完全な Unicode Basic Multilingual Plane (BMP) が含まれます。

    • アスキー: U+0001 .. U+007F

    • 拡張: U+0080 .. U+FFFF

[削除]

識別子の引用文字はバッククォート ("<code>`") です。

したがって、列名にスペース/ドット/などを含めるには (これは一般的には悪い考えです)、バッククォートで識別子を引用する必要があります:

CREATE TABLE account (
   `Fist Name` int(10) NOT NULL, 
   `Middle Name` varchar(10) NOT NULL, 
   `Last Name` varchar(10) NOT NULL,
   `Email` varchar(55) NOT NULL,
   `Comfirm Email` varchar(55) NOT NULL,
   `D.O.B` varchar(10) NOT NULL,
   `ID` int(11) NULL,  
   PRIMARY KEY (ID)
)
于 2013-07-15T15:10:19.490 に答える
1

スペースを使用する場合は、SQL ステートメントの列名にアクセント ` を使用します。正しい SQL ステートメントは次のとおりです。

SELECT * FROM `account` WHERE create table account(
   `First Name` int(10) NOT NULL, 
   `Middle Name` varchar(10) NOT NULL, 
   `Last Name` varchar(10) NOT NULL,
   `Email` varchar(55) NOT NULL,
   `Comfirm Email` varchar(55) NOT NULL,
   `D.O.B` varchar(10) NOT NULL,
   `ID` int(11) NULL,  
   PRIMARY KEY (ID)
)

チップ:

  1. 列名にスペースや大文字を使用しないでください。
  2. ID は「自動インクリメント」にする必要があります
  3. First Name(ステートメントで 1 文字を失いました ;) ) は INT である必要がありますか?
于 2013-07-15T15:09:05.267 に答える
0

列名を指定するときは、スペースを入れないでください。たとえば、テーブルのフィールド名を「First Name」にしたい場合は、「First_name」または「FirstName」のいずれかになるので、そのようになります

<?php 
mysql_connect('klaic.db.11427125.hostedresource.com', 'klaic', '*******')
or die (mysql_error());
mysql_select_db('klaic')
or die (mysql_error());
mysql_query("create table account(
   Fist_Name int(10) NOT NULL, 
   Middle_Name varchar(10) NOT NULL, 
   Last_Name varchar(10) NOT NULL,
   Email varchar(55) NOT NULL,
   Comfirm_Email varchar(55) NOT NULL,
   D.O.B varchar(10) NOT NULL,
   ID int(11) NULL,  
   PRIMARY KEY (ID)
)") or die (mysql_error());
echo "Complete.";
?>
于 2013-07-15T15:05:42.487 に答える