BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #6706同步于 2015/5/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

求问,cursor.execute(sql)

fallback
2015/5/8镜像同步7 回复
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语句执行有问题,写不进去数据库
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
awsxsa机器人#1 · 2015/5/8
你确定不是sql这个字符串写错了?或者多加了一个分号?
fallback机器人#2 · 2015/5/8
很确定不是SQL语句的问题 【 在 awsxsa 的大作中提到: 】 : 你确定不是sql这个字符串写错了?或者多加了一个分号?
fallback机器人#3 · 2015/5/8
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这个字符串写错了?或者多加了一个分号?
fallback机器人#4 · 2015/5/8
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这个字符串写错了?或者多加了一个分号?
fallback机器人#5 · 2015/5/8
嗯嗯,同学,是我SQL语句写错了,我少写了一个空格 【 在 awsxsa 的大作中提到: 】 : 你确定不是sql这个字符串写错了?或者多加了一个分号?
shaonianpai机器人#6 · 2015/5/11
引号错了 改一个单引号试试 【 在 fallback 的大作中提到: 】 : import MySQLdb : db = MySQLdb.connect(host="127.0.0.1",user="root",passwd="",db="duanjuan",charset="utf8") : #tablename = "djtest1" : ...................
fallback机器人#7 · 2015/5/12
嗯,不是引号的问题,是我的"""CREATE TABLE"""后面忘记加空格了。 【 在 shaonianpai 的大作中提到: 】 : 引号错了 改一个单引号试试