2012-05-04 2 views
1

私はかなりsqlに慣れていて、MySQLデータベースに行を挿入しようとするとエラーが発生しました。私はSQLインジェクションから防ぐためにデータベースに挿入する前に値をバインドしています。 sqlの挿入がエラーを返す

マイ挿入文:

INSERT INTO member (FirstName, LastName, Date of Birth, Street Address, 
        City, State, Zip, Email, Phone, Active) 
VALUES (:FirstName, :LastName, :DateOfBirth, :streetAddress, :City, :State, 
        :Zip, :Email, :Phone, :Active) 

INSERT文に必要な主キーはありますか?私はデータベースの自動インクリメントに設定しています。

私は入れませんエラーは、次のとおりです。

1064 - あなたはあなたのSQL構文でエラーが発生しています。 「FirstName」、「LastName」、「Date of Birth」、「Street Address」、「City」、「State」、「Z」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを参照してください。ライン1

私は文自体の構文を中心に作業を試みたと私は私のSQLの知識は非常に非常に限られているものの、それは文法的に正しいことをかなり確信している。お時間をいただき、ありがとうございます。

Tama198

+0

oracleに列名にスペースがある場合は、Double Quotesにそのような文字を含める必要があります。しかし、私は自分のSQLについてはわからない – Maddy

+0

私はカラム名のスペースに感謝していない。残念なことに、私は名前の周りを引用符で一度だけ、列名自体のスペースを削除することでもう一度試しました。両方とも成功しなかった。 – Tama198

+0

テーブル構造も共有してくださいね? –

答えて

2

あなたのテーブルの列を確認してください

INSERT INTO member (FirstName, LastName, `Date of Birth`, `Street Address`, 
        City, State, Zip, Email, Phone, Active) 
VALUES (:FirstName, :LastName, :DateOfBirth, :streetAddress, :City, :State, 
        :Zip, :Email, :Phone, :Active) 

で試してみてください名前「生年月日」および「ストリート・アドレス」。列名はスペースを許していますか?私はそれを疑っている。

+0

ありがとうございますsarwar026、しかし、私はデータベース内の列名のスペースを削除し、エラーの変更なしで私の挿入ステートメントを変更しました。新しい行を挿入するために変更が必要なphpmyadminの設定はありますか? – Tama198

+0

あなたの '主キー'とは何ですか?それは自動増分フィールドですか? – sarwar026

+0

私の主キーは列IDでした。私はそれを自動増分に変更しなければならなかったが、うまくいった。自動インクリメントがIDに設定されていると思っていました。明らかにそうではありませんでした。まだデータベースの世界を学ぼうとしています。ご協力いただきありがとうございますsarwar026とmadhu。とてもありがたい! – Tama198