返回信息流Traceback (most recent call last):
File "E:/pythoncoding/lianxi2.py", line 24, in <module>
create_table(tableName)
File "E:/pythoncoding/lianxi2.py", line 13, in create_table
cursor.execute(sql)
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
ProgrammingError: (1064, "Erreur de syntaxe pr\xe8s de 'TABLEdjtest1(\n Firstname varchar(10),\n Lastname varchar(10),\n ' \xe0 la ligne 1")
程序报错,求问怎么解决哈。SQL语句执行有问题,写不进去数据库
这是一条镜像帖。来源:北邮人论坛 / python / #6706同步于 2015/5/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
求问,cursor.execute(sql)
fallback
2015/5/8镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
import MySQLdb
db = MySQLdb.connect(host="127.0.0.1",user="root",passwd="",db="duanjuan",charset="utf8")
tablename = "djtest1"
cursor = db.cursor()
print "ok"
#cursor.execute("SELECT VERSION()")
sql = """CREATE TABLE""" + tablename + """(firstname varchar(20),
lastname varchar(20),
age int,
id int)"""
#data = cursor.fetchone()
print "ok"
cursor.execute(sql)
#print data
db.close(),这个是第一次的代码,运行后报上面的错误。
【 在 awsxsa 的大作中提到: 】
: 你确定不是sql这个字符串写错了?或者多加了一个分号?
import MySQLdb
db = MySQLdb.connect(host="127.0.0.1",user="root",passwd="",db="duanjuan",charset="utf8")
#tablename = "djtest1"
cursor = db.cursor()
print "ok"
#cursor.execute("SELECT VERSION()")
sql = """CREATE TABLE djtest1 (firstname varchar(20),
lastname varchar(20),
age int,
id int)"""
#data = cursor.fetchone()
print "ok"
cursor.execute(sql)
#print data
db.close()
第二次我把表名直接用常量代替了,就运行成功了,不知道为什么不能用变量名
【 在 awsxsa 的大作中提到: 】
: 你确定不是sql这个字符串写错了?或者多加了一个分号?
嗯嗯,同学,是我SQL语句写错了,我少写了一个空格
【 在 awsxsa 的大作中提到: 】
: 你确定不是sql这个字符串写错了?或者多加了一个分号?
引号错了 改一个单引号试试
【 在 fallback 的大作中提到: 】
: import MySQLdb
: db = MySQLdb.connect(host="127.0.0.1",user="root",passwd="",db="duanjuan",charset="utf8")
: #tablename = "djtest1"
: ...................
嗯,不是引号的问题,是我的"""CREATE TABLE"""后面忘记加空格了。
【 在 shaonianpai 的大作中提到: 】
: 引号错了 改一个单引号试试