MySQL 使用 mysql.connector 时出现错误 1064 (42000)

MySQL error 1064 (42000) when using mysql.connector

当前收到错误“mysql.connector.errors.ProgrammingError: 1064 (42000): 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本对应的手册当我 运行 此代码时,在第 1 行的 '%s)' 附近使用正确的语法:

    def initiate_sale():
        while True:
            cx_shopped_before = input('Has customer shopped with us before? Y/N: ')
            if cx_shopped_before.upper() == 'Y':
                cust_email = input('Please enter customers email address')
                with mysql.connector.connect(host=HOSTNAME, user=USER_NAME, password=PASSWORD) as mysql_connection:
                    with mysql_connection.cursor() as mysql_cursor:
                        mysql_cursor.execute('USE florist')
                        query = "SELECT CusID, cus_fname, cus_lname FROM customer WHERE cus_email = (%s)"
                        mysql_cursor.execute(query, cust_email)
                        break
            elif cx_shopped_before.upper() == 'N':
                pass
            else:
                print('Invalid choice, use Y or N')

我认为它是一个简单的括号或逗号,因为它只是执行语句中元组中的一个项目,但我找不到位置。提前致谢

我可能是错的,但我认为您不需要 %s

两边的括号
query = "SELECT CusID, cus_fname, cus_lname FROM customer WHERE cus_email = %s"

尝试 mysql_cursor.execute(query, tuple(cust_email)) 而不是 mysql_cursor.execute(query, cust_email)

用元组代替pace holder,至少需要atm 2维

 query = """SELECT CusID, cus_fname, cus_lname FROM customer WHERE cus_email = (%s)"""
 mysql_cursor.execute(query, (cust_email,))