我的数据库表包含电子邮件,用户名和密码列。我正在尝试将这些测试值插入其中,但查询似乎是以一种奇怪的方式解释测试电子邮件的值。 这个查询出了什么问题?
mysql> INSERT INTO `tbl_user`
-> (`email`, `username`, `password`)
-> VALUES
-> (`test1@notanaddress.com`, `Test_User_One`, MD5(`test1`)),
-> (`test2@notanaddress.com`, `Test_User_Two`, MD5(`test2`))
-> ;
ERROR 1054 (42S22): Unknown column 'test1@notanaddress.com' in 'field list'
答案 0 :(得分:5)
尝试使用单引号而不是反引号围绕值,即
mysql> INSERT INTO `tbl_user`
-> (`email`, `username`, `password`)
-> VALUES
-> ('test1@notanaddress.com', 'Test_User_One', MD5('test1')),
-> ('test2@notanaddress.com', 'Test_User_Two', MD5('test2'))
-> ;
反引号用于表示列名称,而单引号(或双引号)将用作值。
答案 1 :(得分:1)
您对值使用了错误的引号。使用简单引号'
表示char值。
答案 2 :(得分:0)
反引号分隔字段名称(数据库名称,表名称或列名称)。
使用单引号或双引号来分隔字符串:
INSERT INTO `tbl_user` (`email`, `username`, `password`)
VALUES ("test1@notanaddress.com", "Test_User_One", MD5("test1")),
("test2@notanaddress.com", "Test_User_Two", MD5("test2"));