2013-03-28 36 views
0

我即将去坚果与Python 3.2.3不能运行一个单一的与MySQLdb的执行MySQLdb的Python中的3.2.3

你看到什么毛病下面的语句?

cur.execute('''SELECT hits FROM counters WHERE url = ?''', (page,)) 
data = cur.fetchone() 

因为你可以通过访问我的网页在http://superhost.gr看到它产生一个错误,我不知道为什么。

我正在使用MySQLdb。

í'musing'?'或'%s';后者用于与Python 2.6完美的工作,但它在Python不3.2.3

这两个命令都无法在Python 3.2.3

cur.execute('''SELECT hits FROM counters WHERE url = ?''', (page,)) 

cur.execute('''SELECT hits FROM counters WHERE url = %s''', (page,)) 

任何想法,为什么?

+0

有人有想法吗? – 2013-03-28 10:25:20

+0

在此特定行显示的具体错误是什么? – ronak 2013-03-29 22:58:12

回答

0

我从来没有尝试python 3k上的MySQLdb。你可以阅读the dev blog:需要

的Python 3兼容性现在比以往任何时候都多。我以为我可以在1.2.4中做到这一点,但我必须牺牲兼容性 Python < 2.7。因此,MySQLdb-1.2.4将是一个bug修复版本,完全兼容Python 2.7(并且应该是Python 2.8兼容版),并且很快就会有一个1.3.0,这将需要Python 2.7或 更新,并与Python 3.

+0

或者在执行查询之前格式化字符串cur.execute('''SELECT命中从计数器WHERE URL =?'''%page)'? – schemacs 2013-05-04 04:26:47

+0

切换到'pymysql'模块,一切按预期工作。 – 2013-06-04 17:48:38