我经常使用pymysql将数据插入MySQL服务器。
插入字符串时,我通常(但不是每次都)收到:pymysql.err.ProgrammingError:(1064,...)当我使用代码插入字符串时(其中指的是varchar):
cursor.execute("Insert into table (column) values (%s)", (stringVar))
通常我必须做以下事情:
cursor.execute("Insert into table (column) values ('"+stringVar+"')"))
然而,有时会抛出相同的错误,我必须做类似的事情:
stringVar="'"+stringVar
stringVar=stringVar+"'"
cursor.execute("Insert into table (column) values ("+stringVar+")")
这不是编程此操作的可行方法。
我认为我搞砸了一些简单但我无法弄清楚这是什么。我经常使用pymysql,这个错误真的开始在我身上穿了。任何帮助将不胜感激!
答案 0 :(得分:0)
cursor.execute('INSERT INTO table (column) VALUES (?)', (stringVar,))
每当您尝试将字符串直接格式化为类似的查询时,它基本上总是表明您做错了什么。我所知道的每个python数据库接口都有一种方法可以将参数传递给上面的查询。请注意,需要将stringVar
包含在iterable中。