2014-02-25 30 views
0

這裏是我工作的代碼:Python的MySQLdb的SELECT沒有返回正確的值

poljeID = int(cursor.execute("SELECT poljeID FROM stanje")) 
xkoord = cursor.execute("SELECT xkoord FROM polje WHERE poljeID = %s;", poljeID) 
ykoord = cursor.execute("SELECT ykoord FROM polje WHERE poljeID = %s;", poljeID) 

print xkoord, ykoord 

這是由它的一個片段,基本上什麼需要做的是獲取場(poljeID)的ID,其中一個代理正在運行(stanje)並使用它來獲取該字段的x和y座標(xkoord,ykoord)。

爲變量的初始值是:

poljeID = 1 
xkoord = 0 
ykoord = 0 

,我與該代碼得到的值是:

poljeID = 1 
xkoord = 1 
ykoord = 1 

我在做什麼錯?

+1

你should't做數據庫的工作在你的應用程序。使用'SELECT xkoord,ykoord FROM POLJ WHERE poljeID IN(SELECT poljeID FROM stanje)'。 – Matthias

+0

好主意,謝謝! –

回答

1

cursor.execute不返回查詢結果,它返回受影響的行數。要獲得結果,您需要爲每個查詢執行cursor.fetchone()(或cursor.fetchall())。

(注意,真正的第二和第三查詢應一次完成:SELECT xkoord, ycoord FROM ...

+0

將其更改爲'cursor.execute(「SELECT xkoord,ykoord FROM polje WHERE poljeID =%s;」,poljeID) xkoord,ykoord = cursor.fetchone()'現在可以工作。謝謝! –