我现在开始使用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
我可以把我桌子上的行都拿出来,所以一切都很好。
但是,当我按如下方式使用插入语句时:
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
我得到语法错误,我说在第1行是“接近'collumn1,collumn2)值(23:ea:4a:7f:a1,someone)'”
我已经检查了文档,相信我使用的语法是正确的。
尝试使用多个字段类型(varchar,text,…)并在结尾使用分号或不使用分号。
column1是varchar(14)
column1是文本
为Debian Linux GNU(ARMV71)使用MySQLv14.14发行版5.5.57
最佳答案
试试这个:
INSERT INTO "table" (collumn1,collumn2) VALUES('23:EA:4A:7F:A1','Someone')
table
是sql中的保留关键字,因此应避免命名表。就像给你的孩子取名,哦等等。但无论如何,如果你打算使用保留关键字,你必须用双引号将它们括起来。至于值,
table
是一个字符串,所以您应该用单引号将其括起来。我不确定Kid
的类型,但我想那也是一个字符串,所以最好也将它包装起来。