AttributeError:'tuple'对象没有属性'encode' - MySQLdb Python

时间:2016-02-11 23:42:59

标签: python mysql pycharm encode mysql-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'对象没有属性'encode'

当我在查询中硬编码ID的值时,我得到了结果。但由于某些原因,当我传入参数时,它无法正常工作。

1 个答案:

答案 0 :(得分:1)

查询参数应作为第二个参数传递给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占位符周围不需要单引号 - 数据库驱动程序会根据查询参数类型自动添加它们。