I'm attempting to execute some sql using the mysql-flask python extension. The below code always returns a long for some reason.
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()
Error:
 user = g.db.cursor().execute(sql).fetchall()
AttributeError: 'long' object has no attribute 'fetchall'
Why doesn't this return a result set?
Also, I can execute insert statements just fine.
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
                You are trying to call a method on the result of Cursor.execute, which the DB-API specification says is undefined (the implementation you're using appears to be returning an integer).  Instead, you want to call fetchall on the cursor object.  Something like:
cursor = g.db.cursor()
cursor.execute(sql)
user = cursor.fetchall()
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With