我现在开始使用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(collumn1,collumn2) VALUES(23:EA:4A:7F:A1,Someone)")
c.execute("SELECT * FROM table")
rows=c.fetchall()
for eachRow in rows:
print eachRow
我收到语法错误,我说它"靠近' Collumn1,collumn2)值(23:EA:4A:7F:A1,某人)'在第1行"
我检查了文档并相信我使用了正确的语法。 尝试过使用多种字段类型(varchar,text,...),最后是否使用分号。 collumn1是varchar(14) collumn1是文字 使用mysql Ver 14.14 Distrib 5.5.57 for debian-linux-gnu(armv71)
答案 0 :(得分:0)
试试这样:
INSERT INTO "table" (collumn1,collumn2) VALUES('23:EA:4A:7F:A1','Someone')
table
是SQL中的保留关键字,因此您应该避免命名表table
。这就像命名你的孩子Kid
,哦等等..但无论如何,如果你打算使用保留的关键字,你必须用双引号将它们包起来。
至于值,Someone
是一个字符串,所以你一定要用单引号括起来。我不确定23:EA:4A:7F:A1
的类型,但我猜这也是一个字符串,所以更好地包装它。