【发布时间】:2023-03-04 16:58:01
【问题描述】:
我从 python 中的一个简单的 mysql 查询开始,返回表的所有列。 由于某种原因,此命令有效:
cursor.execute("SHOW columns from students")
虽然以下所有内容都返回类型错误:
cursor.execute("SHOW columns from %s", 'students')
cursor.execute("SHOW columns from %s", ('students',))
cursor.execute("SHOW columns from %s", ['students'])
cursor.execute("""SHOW columns from %s""", 'students')
错误是:
Traceback (most recent call last):
File "<pyshell#60>", line 1, in <module>
cursor.execute("SHOW columns from %s", 'students')
File "C:\Anaconda\lib\site-packages\MySQLdb\cursors.py", line 187, in execute
query = query % tuple([db.literal(item) for item in args])
TypeError: not all arguments converted during string formatting
请指教
【问题讨论】:
-
第二种形式应该可以工作。您能否具体确认第二种形式的错误消息是什么?该示例仅显示第一个表单的错误。
-
你试过
cursor.execute("SHOW columns from (%s)", ['students'])吗? -
第二个错误:回溯(最近一次调用最后一次):文件“
”,第 1 行,在 cursor.execute("SHOW columns from %s" , ('students',)) 文件“C:\Anaconda\lib\site-packages\MySQLdb\cursors.py”,第 205 行,在执行 self.errorhandler(self, exc, value) 文件“C:\Anaconda\ lib\site-packages\MySQLdb\connections.py”,第 36 行,在 defaulterrorhandler raise errorclass, errorvalue ProgrammingError: (1064, “您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本对应的手册以获取正确的在第 1 行的 ''students'' 附近使用的语法)
标签: python cursor mysql-python execute