我现在开始使用 Python 脚本来管理与 MySQL 关联的数据库。
我遇到了语法错误问题,似乎无法弄清楚原因。
当我运行以下代码时:
import MySQLdb
import time
conn = MySQLdb.connect("localhost","username","password","DataBase")
c= conn.cursor()
c.execute("SELECT * FROM table")
rows=c.fetchall()
for eachRow in rows:
print eachRow
我可以获取表格中的行,所以一切都很好。 但是,当我按如下方式使用 INSERT 语句时:
import MySQLdb
import time
conn = MySQLdb.connect("localhost","username","password","DataBase")
c= conn.cursor()
c.execute("INSERT INTO table(column1, column2) VALUES(23:EA:4A:7F:A1,Someone)")
c.execute("SELECT * FROM table")
rows=c.fetchall()
for eachRow in rows:
print eachRow
语法错误
"near 'Column1,column2) Values(23:EA:4A:7F:A1,Someone)' at line 1"
我已经检查了文档并相信我使用了正确的语法。 尝试过使用多种字段类型(varchar、text 等),并尝试在末尾使用分号或不使用分号。
- 第 1 列的类型为 varchar(14)
- column1 是文本类型
为 debian-linux-gnu (armv71) 使用 mysql Ver 14.14 Distrib 5.5.57
最佳答案
像这样尝试:
INSERT INTO "table" (column1, column2) VALUES('23:EA:4A:7F:A1','Someone')
table
是 SQL 中的保留关键字,因此您应该避免将表命名为 table
。这就像给你的 child 取名 Kid
,哦等等..但是无论如何,如果你打算使用保留关键字,你必须用双引号将它们括起来。
至于值,Someone
是一个字符串,因此您绝对应该将其用单引号引起来。我不确定 23:EA:4A:7F:A1
的类型,但我想这也是一个字符串,所以最好也把它包起来。
关于python - Raspbian 上的 MySQL+Python 产生语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47549851/