这个问题在这里已经有答案了:
在mysql查询中使用python变量(2个答案)
两年前关门了。
我使用pymysql从python执行sql查询命令。我的风格是 pyformat
通过以下方式发现:
>>> pymysql.paramstyle
pyformat
我的数据库和游标详细信息如下:
>>> MYDB = pymysql.connect(_params_)
>>> cursor = MYDB.cursor()
然后使用,
>>> cursor.execute("SELECT * FROM %(tablename)s", {"tablename": "activity"})
我发现一个错误,
ProgrammingError: (1064, u"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the
right syntax to use near '''activity''' at line 1")
另一方面,查询本身是有效的,
>>> unsafe_sql = ("Select * from activity")
>>> cursor.execute(unsafe_sql)
>>> 4
我不确定我的第一个问题是怎么回事。谢谢你的帮助。
1条答案
按热度按时间fjnneemd1#
不能将表名作为参数传递给
cursor.execute()
. 每当一个参数是一个字符串,当它替换到查询中时,它就引用它。使用普通的字符串格式化方法,例如。