MySQL:1064语法错误

时间:2014-11-08 02:26:49

标签: 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 ''

我也不确定问题出在哪一行,因为它只是说''

这是我当前的代码,当我将执行代码复制到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()

1 个答案:

答案 0 :(得分:0)

您的代码存在两个问题。

  1. 默认" paramstyle"在MySQLdb中是%s。参考:MySQLdb User's Guide
  2. .execute()的第二个参数应该是一个序列(例如元组,列表......)
  3. 将您的查询更改为:

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