我正在嘗試執行一些使用mysql-flask python擴展名的sql。下面的代碼總是由於某種原因返回一個長。AttributeError:'長'對象沒有屬性'fetchall'
stringify = lambda x : '"' + x + '"'
if request.method == 'POST':
sql = "select * from users where username = " + stringify(request.form['username'])
user = g.db.cursor().execute(sql).fetchall()
錯誤:
user = g.db.cursor().execute(sql).fetchall()
AttributeError: 'long' object has no attribute 'fetchall'
爲什麼沒有能返回結果集?
此外,我可以執行插入語句就好了。
FIX(ANSWER):
def get_data(g, sql):
cursor = g.db.cursor()
cursor.execute(sql)
data = [dict((cursor.description[idx][0], value) for idx, value in enumerate(row)) for row in cursor.fetchall()]
return data
您可能還想查看字符串格式,特別是使用execute函數。你可以寫'sql ='select * FROM用戶,其中username =「%s」''然後'cursor.execute(sql,(request.form.username,))'(參見這裏的例子http:// mysql- python.sourceforge.net/MySQLdb.html#cursor-objects) – jmilloy