2016-07-17 6 views
0

以下のようなテーブルがあり、データをINSERTしようとしています。mysqlのINSERT INTOエラー(desc含む)

mysql> desc subscribers 
    -> ; 
+---------+-------------+------+-----+---------+----------------+ 
| Field | Type  | Null | Key | Default | Extra   | 
+---------+-------------+------+-----+---------+----------------+ 
| id  | smallint(6) | NO | PRI | NULL | auto_increment | 
| email | varchar(32) | NO |  | NULL |    | 
| comment | text  | NO |  | NULL |    | 
+---------+-------------+------+-----+---------+----------------+ 

データ

INSERT INTO `subscribers` VALUES (1, ‘[email protected]’, ‘thanks’); 

を挿入しかし、それは私にエラーを与えます。

ERROR 1064 (42000): 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 '@gmail.com’, ‘ thanks’)' at line 1 

誰でもエラーが表示されますか?

+0

あなたのエディタ/ターミナル/何かが(MySQLが文字列リテラル引用符として認識する)文字を['' U + 0027 APOSTROPHE](http://www.fileformat.info/info/unicode/char/0027)文字に変換しています[U + 2018左一重引用符](http://www.fileformat.info/info/unicode/char/2018)と['' U + 2019右一重引用符](http:// www .fileformat.info/info/unicode/char/2019)(これはMySQLが認識できないため、その結果の言語要素をオブジェクト識別子として解析します)。 – eggyal

答えて

0

一重引用符ではなく、何らかのアポストロフィを挿入するように文字列を囲んでいます。これを代わりに使用してください(この回答からそのままコピーしてください):

INSERT INTO `subscribers` 
VALUES (1, '[email protected]', 'thanks'); 
+0

タク私は私のテキストエディタのスマートな引用を設定する必要があります! –

+0

私はそれを言ったようにあなたを引用します。 –

-1

あなたの問題は、小さな一重引用符です。しかし、将来のエラーを防ぐために、あなたは常にinsertの列のリストを含める必要があります。

INSERT INTO `subscribers`(id, email, comment) 
    VALUES (1, '[email protected]', 'thanks'); 

実際には、テーブルを作成するための自然な方法で使用されている自動インクリメントidを。あなたがやった場合は、INSERTは次のようになります。

INSERT INTO `subscribers`(email, comment) 
    VALUES ('[email protected]', 'thanks'); 

idが自動的に割り当てられます。

+0

匿名投票の理由が判明している理由はありますか? –