Python mysql.connector-cursor.execute(“ WHERE ....)返回NoneType

时间:2018-12-08 15:33:25

标签: python mysql mysql-connector

我想使用flask对登录页面进行编码,但是从数据库中获取的用户值始终为NoneType。即使在登录表单中输入的用户名与数据库中的用户名相同。我想我在SQL查询中可能有一个错误,但我不知道它在哪里。感谢您的帮助!

这是带有行的登录函数,该行应返回在数据库中找到了多少行。

@app.route("/login", methods=["GET", "POST"])
def login():
    if request.method == "POST":
        #get form fields
        username = request.form["username"]
        password_candidate = request.form["password"]

        result = sqlhandler.mycursor.execute("SELECT * FROM users WHERE username = %s", [username])
        print(result) #result is a NoneType

这是sqlhandler的类:

class mySQLHandler():
    def __init__(self):
        self.db = mysql.connector.connect(
            host="localhost",
            user="root",
            passwd="notrealpassword ;)",
            db="testdb"
        )

        self.mycursor = self.db.cursor()

我真的很感激,如果有人可以告诉我,为什么execute语句返回NoneType。我已经检查过mycursor.execute()中的代码是否可以在MySQL工作台中正常工作。

谢谢!

1 个答案:

答案 0 :(得分:0)

查询执行和获取分为两个单独的步骤。执行查询后,从光标中获取数据:

class JobDetailViewController: UIViewController {
    ...
    var job: Job?
    ...
}

参考: