如何在 MariaDB 中调用 SELECT 查询时使用 flask 变量

How to use flask variable in calling SELECT query in MariaDB

从注册表中调用 MariaDB 中的 SELECT 查询的正确语法是什么。 具体来说,在 WHERE 子句中。我一直在网上寻找调试这个,但它似乎不起作用(语义上)。

这是我的 python 烧瓶中的代码。

@app.route('/check_email', methods = ['POST', 'GET'])
def chck_Email():
  if request.method == 'POST':
    visEmail = request.form['email']
    conn = mariadb.connect(**config)
    print(f"WE ARE CONNECTED ORAYT")
    # create a connection cursor
    cur = conn.cursor()
    # execute an SQL statement
    try:
        print(visEmail)
        #sql = " INSERT INTO visitor (Visitor_ID, Visitor_Name)  VALUES( NULL, '{}')".format(Visitor_ID, Visitor_Name)
        current_Email= cur.execute("SELECT user_Email FROM user_account WHERE user_Email = ?",(visEmail,))
        
        print(current_Email)
        if current_Email != None:
            print('Email Invalid: Email already exists!')
            form = Registration_Form()
            exists = {
                "email_exists": True
            }
            return render_template(exists,'register.html', form = form )

""visEmail 是应该保存用户在单击提交时提供的电子邮件地址的变量,程序然后检查数据库中是否已存在给定的电子邮件地址。

我打印了 visEmail 变量中的数据以查看字符串(这很好),但是在数据库中执行 return 我用“None”(它不应该是 returning a None 因为我已经在数据库上有了给定的电子邮件地址)。它应该 return 错误“电子邮件已经存在”

非常感谢

您没有获取结果行。 cur.execute() 没有 return 任何东西,您必须调用 cur.fetchone() 来获取结果,并将其分配给 current_Email.

    try:
        print(visEmail)
        #sql = " INSERT INTO visitor (Visitor_ID, Visitor_Name)  VALUES( NULL, '{}')".format(Visitor_ID, Visitor_Name)
        cur.execute("SELECT user_Email FROM user_account WHERE user_Email = ?",(visEmail,))
        current_Email = cur.fetchone()
        
        print(current_Email)
        if current_Email != None:
            print('Email Invalid: Email already exists!')
            form = Registration_Form()
            exists = {
                "email_exists": True
            }
            return render_template(exists,'register.html', form = form )