[英]Query a mysql table for a dynamic column name and its value in python?
[英]Python - MySQL SELECT query with dynamic table name
我正在尝试从 Python 中的 MySQL 数据库中获取所有行。 当表名是可变的时,如何从表中获取所有行?
这是我编写的一个方法,但是在运行它时出现错误。
def get_rows(self, table_name):
cursor = self.conn.cursor()
query = ("SELECT * "
"FROM %s ")
try:
cursor.execute(query, (table_name,))
value = cursor.fetchall()
finally:
cursor.close()
return value
我收到以下错误:
AttributeError: 'NoneType' 对象没有属性 'cursor'
我在WHERE
子句中尝试了类似的方法,效果很好。
你的 conn 对象有问题。
'NoneType' 对象没有属性 'cursor' 意味着 conn 是 None,可能是因为它没有在 __ init __ 调用期间建立。
您不能将对象名称(在这里您尝试绑定表名称)或句法结构动态绑定到查询。 如果您希望有这样的行为,您将不得不求助于字符串操作,这意味着您将丧失准备好的语句提供的所有安全优势:
query = ("SELECT * FROM %s" % table_name)
try:
cursor.execute(query, ())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.