AttributeError: 'tuple' object has no attribute 'encode' - MySQLdb Python
AttributeError: 'tuple' object has no attribute 'encode' - MySQLdb Python
我正在用 MySQL 编写 Python 代码。
我的数据库架构如下:
-------------
| id | name |
-------------
| | |
| | |
以下是我的部分代码:
cursor = self.conn.cursor()
query = ("SELECT name FROM TABLENAME WHERE id = '%s'", (str(id.decode('unicode_escape').encode('ascii', 'utf-8'),)))
cursor.execute(query)
我正在传递来自 URL 的 ID。
并出现以下错误:
AttributeError: 'tuple' object has no attribute 'encode'
当我在查询中硬编码 ID 的值时,我得到了结果。但是由于某种原因,当我传入一个参数时它不起作用。
查询参数应作为第二个参数传递给 execute()
:
cursor = self.conn.cursor()
query = "SELECT name FROM TABLENAME WHERE id = %s"
cursor.execute(query, (str(id.decode('unicode_escape').encode('ascii', 'utf-8')), ))
请注意,您不需要在 %s
占位符周围加上单引号 - 如果需要,数据库驱动程序会根据查询参数类型自动放置它们。
我正在用 MySQL 编写 Python 代码。
我的数据库架构如下:
-------------
| id | name |
-------------
| | |
| | |
以下是我的部分代码:
cursor = self.conn.cursor()
query = ("SELECT name FROM TABLENAME WHERE id = '%s'", (str(id.decode('unicode_escape').encode('ascii', 'utf-8'),)))
cursor.execute(query)
我正在传递来自 URL 的 ID。
并出现以下错误:
AttributeError: 'tuple' object has no attribute 'encode'
当我在查询中硬编码 ID 的值时,我得到了结果。但是由于某种原因,当我传入一个参数时它不起作用。
查询参数应作为第二个参数传递给 execute()
:
cursor = self.conn.cursor()
query = "SELECT name FROM TABLENAME WHERE id = %s"
cursor.execute(query, (str(id.decode('unicode_escape').encode('ascii', 'utf-8')), ))
请注意,您不需要在 %s
占位符周围加上单引号 - 如果需要,数据库驱动程序会根据查询参数类型自动放置它们。