我在本网站和其他许多网站上搜索过高和低,并且发现了类似的问题,但没有一个答案对我有用(通常只是考虑了元组)。我正在编写一个python脚本来解析html页面并填充数据库。我几乎一切工作,除了填充部分...MySQLdb执行
这里是代码段与MySQL数据库交易(注:使用python的MySQLdb的模块)
conn = MySQLdb.connect(user="root", passwd="xxxxx",db="nutrients")
cur = conn.cursor()
test = "Canned Corn"
cur.execute("INSERT INTO food (name) VALUES (%s)", (test,))
conn.commit()
我首先用解析的测试它字符串,但没有工作。这给了我2个错误:
回溯(最近通话最后一个): 文件 “C:\ Python32 \ LIB \站点包\ MySQLdb的\ cursors.py”,线路171,在执行 R = self._query(query) 文件“C:\ Python32 \ lib \ site-packages \ MySQLdb \ cursors.py”,行330,in _query rowcount = self._do_query(q) 文件“C:\ Python32 \ lib \ site-packages \ MySQLdb \ cursors.py“,第294行,在_do_query中 db.query(q) _mysql_exceptions.ProgrammingError:(1064,”您的SQL语法错误 ;检查与您的MySQL服务器版本为正确的s yntax使用近 '%S)' 第1" 行)
回溯(最近通话最后一个): 文件 “C:\ Python32 \ LIB \站点包\ MySQLdb的\ cursors.py”,行171,在执行 r = self._query(query) 文件“C:\ Python32 \ lib \ site-packages \ MySQLdb \ cursors.py”,行330,in _query rowcount = self._do_query(q) File “C:\ Python32 \ lib \ site-packages \ MySQLdb \ cursors.py”,第294行,在_do_query中 db.query(q) _mysql_exceptions.ProgrammingError :(1064,“您的SQL语法错误 ;检查对应于你的MySQL服务器版本的正确s yntax在1" 号线附近使用“%S)”)手动
为什么这个查询不行!?
更新:几乎把我的头发拉出后,我决定回到2.7.3,并猜测什么......现在一切正常了:D应该知道这是一种类型的错误......感谢帮助, !
@ user145896是您的表中唯一的名称列吗? – jcho360
也许尝试捕捉字符串里面,如下所示:str =“INSERT INTO food(name)VALUES”+ test然后cur.execute(str) –
@ jcho360不,不过我可以只指定1列和SQL中的数据 – Odub