Python MySQL:1064语法错误

Python MySQL:1064语法错误,python,mysql,Python,Mysql,大家好,我正在开发一个小程序来存储用户名和实名,我想使用MySQL。这是我第一次使用它,我正在学习一个教程,但是他们和我做的一样,但是我得到了下面的错误消息 1064, "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 '' 我也不确定问题出在哪一行,因为它只是说“ 这是我的当

大家好,我正在开发一个小程序来存储用户名和实名,我想使用MySQL。这是我第一次使用它,我正在学习一个教程,但是他们和我做的一样,但是我得到了下面的错误消息

1064, "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 ''
我也不确定问题出在哪一行,因为它只是说“

这是我的当前代码,当我将执行代码复制到phpMyAdmin中时,它会在我添加值时运行

import MySQLdb  
Users = MySQLdb.connect('sql-.freemysqlhosting.net', 'sql4---16', 'uY---R5*', 'sql4---16')
c = Users.cursor()

Username = raw_input('Enter Username: ')
FirstName = raw_input('Enter first name: ')
LastName = raw_input('Enter last name: ')
Balance = raw_input('Enter deposit: ')

c.execute('INSERT INTO Users (Username, FirstName, LastName, Balance) VALUES (?,?,?,?)',
          Username, FirstName, LastName, Balance)

Users.commit()
Users.close()

您的代码有两个问题

  • MySQLdb中的默认“paramstyle”是
    %s
    。参考文献:
  • .execute()
    的第二个参数应为序列(例如元组、列表等)
  • 将查询更改为:

    c.execute('''INSERT INTO Users (Username, FirstName, LastName, Balance) 
                      VALUES (%s,%s,%s,%s)''', (Username, FirstName, LastName, Balance))
    #                         ^^ ^^ ^^ ^^      ^                                      ^
    

    关于
    值(%s,%s,%s,%s)
    (或最后一列的任何类型)?这两个引号一起表示MySQL在发现错误之前到达了SQL语句的末尾。