Raspbian语法错误的MySQL + Python

时间:2017-11-29 09:58:07

标签: python mysql linux raspberry-pi raspbian

我现在开始使用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)

1 个答案:

答案 0 :(得分:0)

试试这样:

INSERT INTO "table" (collumn1,collumn2) VALUES('23:EA:4A:7F:A1','Someone')

table是SQL中的保留关键字,因此您应该避免命名表table。这就像命名你的孩子Kid,哦等等..但无论如何,如果你打算使用保留的关键字,你必须用双引号将它们包起来。

至于值,Someone是一个字符串,所以你一定要用单引号括起来。我不确定23:EA:4A:7F:A1的类型,但我猜这也是一个字符串,所以更好地包装它。