MySQL+Python上的Raspbian语法E

2024-10-01 02:28:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在开始使用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行是“near'Collumn1,collumn2)Values(23:EA:4A:7F:A1,Someone)”

我已经检查了文档,相信我使用了正确的语法。 尝试过使用多个字段类型(varchar,text,…)以及是否在末尾使用分号。 collumn1是varchar(14) collumn1是文本 在debian linux gnu(armv71)上使用mysql版本14.14发行版5.5.57


Tags: importlocalhostexecutetimeconnecttableusernamepassword
1条回答
网友
1楼 · 发布于 2024-10-01 02:28:56

试着这样做:

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

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

至于值,Someone是一个字符串,所以您应该用单引号将其括起来。我不确定23:EA:4A:7F:A1的类型,但我猜这也是一个字符串,所以最好也包装一下

相关问题 更多 >