1

PHPを実践できるように、単純なデータベースを作成しようとしています。これを本からコピーしています。コードは次のとおりです。

USE testeDB;

CREATE TABLE test(
id INT not null AUTO_INCREMENT,
nome VARCHAR (25),
telefone VARCHAR (12);
PRIMARY KEY (id),
);

INSERT INTO teste VALUES ('', 'Joaquim', '1111');
INSERT INTO teste VALUES ('', 'Carlos', '2233');
INSERT INTO teste VALUES ('', 'Antonio', '3333');
INSERT INTO teste VALUES ('', 'Roque Santeiro', '6969');

phpmyadmin を使用してデータベースを作成しましたが、そのコードを実行してテーブルを作成すると、次のエラーが発生します。

#1064 - 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 '' at line 4 

それは単純なものでなければなりませんが、何が問題なのかわかりません。誰か助けてくれませんか?

4

3 に答える 3

3

テーブル作成時の構文エラー

CREATE TABLE test(
id INT not null AUTO_INCREMENT,
nome VARCHAR (25),
telefone VARCHAR (12),  -- <=== here
PRIMARY KEY (id),
);

IDはauto incrementedこのようにできるので、

-- pass NULL value to column ID since the server automatically
-- assigns the value of the ID for it. also notice that you have specify 
-- column ID as the primary so it won't have duplicated value for ID
-- NULL is NOT THE SAME as empty string
-- NULL is NOTHING (or unknown) and 
-- Empty string is a zero-length string
INSERT INTO test VALUES (null, 'Joaquim', '1111');    
INSERT INTO test VALUES (null, 'Carlos', '2233');
INSERT INTO test VALUES (null, 'Antonio', '3333');
INSERT INTO test VALUES (null, 'Roque Santeiro', '6969');

また

-- explicitly supply the column you want to insert value
INSERT INTO test (nome, telephone) VALUES ('Joaquim', '1111');
INSERT INTO test (nome, telephone) VALUES ('Carlos', '2233');
INSERT INTO test (nome, telephone) VALUES ('Antonio', '3333');
....
于 2012-09-01T15:22:23.867 に答える
3
telefone VARCHAR (12);

する必要があります

telefone VARCHAR (12),

幸運を!

于 2012-09-01T15:23:05.770 に答える
0

これに関する別の問題は次のとおりです。

CREATE TABLE test(
id INT not null AUTO_INCREMENT,
nome VARCHAR (25),
telefone VARCHAR (12);
PRIMARY KEY (id),
);

INSERT INTO teste VALUES ('', 'Joaquim', '1111');
INSERT INTO teste VALUES ('', 'Carlos', '2233');
INSERT INTO teste VALUES ('', 'Antonio', '3333');
INSERT INTO teste VALUES ('', 'Roque Santeiro', '6969')

存在しません。teste(CREATE TABLE 構文から) test を使用して、次のように挿入する必要があります。

   INSERT INTO test VALUES ('Joaquim', '1111');
    INSERT INTO test VALUES ('Carlos', '2233');
    INSERT INTO test VALUES ('Antonio', '3333');
    INSERT INTO test VALUES ('Roque Santeiro', '6969')


-- Not need to put the '' either since the value is auto incrementing (more here:http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html)
于 2012-09-01T15:44:46.360 に答える