2013-03-28 83 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