使用MySQLdb执行方法

时间:2011-03-13 14:33:32

标签: python mysql

我在将动态变量传递到查询时遇到了一些麻烦。请忽略糟糕的风格。这就是我想要运行的:

> sql = "SELECT COUNT(*) FROM artifacts WHERE " \
>       "url = '%s' AND " \
>       "source_id = '%s'"
> self.db.execute(sql, (url, source_id))

我收到错误:

self.db.execute(sql)
AttributeError: execute

对于我的生活,我无法弄清楚为什么它会抛出一个属性错误。在“用户指南”中,该示例明确传入了正确的属性。

我一直关注:http://mysql-python.sourceforge.net/MySQLdb.html

咬嘴唇 eug。

1 个答案:

答案 0 :(得分:3)

只是为了澄清你的self.db属性是连接还是游标。因为你只能调用游标上的执行!

如果您关注this example,那么您可以看到从连接属性创建游标,并且此游标包含execute方法。

这是一个小例子:

import MySQLdb

## This is the connection to the database
self.db = MySQLdb.connect(host=self.host, port=self.port, user=self.user, passwd=self.passwd, db=self.dbname)

## To query you need a cursor, this is created here
c = self.db.cursor()

## On the cursor you can execute a sql stamement and look at result
rows = c.execute('select count(*) from test_table')

## To look at the result use a fetch method, here there is only one result so:
print rows.fetchone()