python - 我该如何解决以下SQL语法错误

标签 python mysql syntax-error bind-variables

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':Username, :passw, :addrss, :DOB, :emil, :ag)' at line 1


编码:
def submit():
    
    my_cursor = mydb.cursor()

    #INSERT INTO TABLE

    my_cursor.execute("INSERT INTO madhav VALUES (:Username, :passw, :addrss, :DOB, :emil, :ag)",
        {
            'Username': Username.get(),
            'passw'   : passw.get(),
            'addrss'  : addrss.get(),
            'DOB'     : DOB.get(),
            'emil'    : emil.get(),
            'ag'      : ag.get()
        })


    mydb.commit()
    mydb.close()


    # Clear The Text Boxes
    Username.delete(0,END)
    passw.delete(0,END)
    addrss.delete(0,END)
    DOB.delete(0,END)
    emil.delete(0,END)
    ag.delete(0,END)
上面的函数用于使用GUI将值插入数据库

最佳答案

那不是在mydb中使用命名参数的方式。这种参数的正确语法是%(name)s。因此,在您的情况下:

my_cursor.execute("INSERT INTO madhav VALUES (%(Username)s, %(passw)s, %(addrss)s, %(DOB)s, %(emil)s, %(ag)s)",
    {
        'Username': Username.get(),
        'passw'   : passw.get(),
        'addrss'  : addrss.get(),
        'DOB'     : DOB.get(),
        'emil'    : emil.get(),
        'ag'      : ag.get()
    })

关于python - 我该如何解决以下SQL语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65373559/

相关文章:

PHP回显从表单中选择的多个

php - PHP解析/语法错误;以及如何解决它们

r - As 公式中的意外符号,无法找到

python - 查找 pandas.Series 中的值何时超过/达到阈值

python - 如何在python中的sklearn中获取不同管道中的特征名称

python - set_axis() 获得参数 'axis' 的多个值

python - 有没有办法让更新测试在未定义的测试中失败?

php - 如何查找和替换 MySQL 文本字段中的整个单词?

mysql - 使用 week() 显示周开始日期

laravel - 在共享主机上托管 Laravel 5.5 (T_VARIABLE) 错误