2017-12-04 16 views
1

こんにちは、初めての投稿です。私はすべての答えを検索したが、私の問題を解決するものは見つけられないようだ。私はプロジェクトのためのMySQLのコードを書いていると私は作成しているデータベースにデータを挿入するように見えることができません。コードへのリンクはこちらです:MYSQLのINSERT INTOエラー

以下

http://sqlfiddle.com/#!9/be69b

は、私がこれまで

CREATE TABLE IF NOT EXISTS `customers` (`CustomerID` INT AUTO_INCREMENT, 
`FirstName` VARCHAR(255) NOT NULL, 
`LastName` VARCHAR(255) NOT NULL, 
`Address` VARCHAR(255) NOT NULL, 
`Apt#` VARCHAR(255) NOT NULL, 
`City` VARCHAR(50) NOT NULL, 
`State` VARCHAR(3) NOT NULL, 
`Zip` VARCHAR(9) NOT NULL, 
`HomePhone` VARCHAR(11), 
`MobilePhone` VARCHAR(11), 
`OtherPhone` VARCHAR(11), 
PRIMARY KEY(`CustomerID`) 
) 
ENGINE=INNODB; 


INSERT INTO `customers` VALUES 
(`1`, `John`, `Doe`, `123 Green St.`, `Apt A.`, `Richmond`, `VA`, `78646`, `18049481616`, ``, ``); 

それはUnknown column 1 in field listことを言って、エラーをスローが出ているものです。私はAUTO_INCREMENTなしでこれをやってみたが、何も変わらない。誰もこれで助けることができますか?ご協力いただきありがとうございます!

+0

は彼らに文字列リテラルを作るバッククォートで値を囲むていませんか? – orhtej2

答えて

1

"CustomerId"(auto_increment)を使用してテーブルを定義するため、insert-statementに値を指定しないでください。

(1, John, Doe, 123 Green St., Apt A., Richmond, VA, 78646, 18049481616, ,) 

は私が考えるものだ

(John, Doe, 123 Green St., Apt A., Richmond, VA, 78646, 18049481616, ,) 

する必要があります!

0

SQLコードをデバッグするときに試してやることの1つは、特殊文字と空白がクエリを混乱させないようにすることです。

上記のあなたの挿入コードを使用して、私はあなたのテーブルを再作成し、このクエリは働いていたが:

INSERT INTO `customers` VALUES (null,'John', 'Doe', '123 Green St.', 'Apt A.', 'Richmond, VA', '78646', '18049481616', null,null, null) 
2

2つの問題:それはフィールドなので

1)あなたはIDを挿入する必要はありません持っていますAUTO_INCREMENT節。

2)文字列ではなく列名を示すバッククォートを使用しています。

INSERT INTO 
    `customers` 
    (`FirstName`, `LastName`, `Address`, `Apt#`, `City`, `State`, `Zip`, `HomePhone`, `MobilePhone`, `OtherPhone`) 
VALUES 
    ('John', 'Doe', '123 Green St.', 'Apt A.', 'Richmond', 'VA', '78646', '18049481616', '', ''); 

SQLFiddle:http://sqlfiddle.com/#!9/392ddf

+0

ありがとうございますkchason!私はバッククックを完全に逃した。私は自分自身を笑いながら笑いを浮かべている。これを変更すると、行が正常に追加されました。私は以前にプログラムしたことがありますが、私は全く新しいデータベースです。私はこれを見たはずです。再度、感謝します。 – user9052540