使用python将值导入MySQL数据库时出现SQL语法错误

奥史密斯

python和MySQL的新手,正在通过互联网和书籍自学。我正在努力将值导入数据库表中。我不断收到错误消息,指出SQL语法不正确。在Windows 8计算机上使用Python 2.7.9和MySQL Connector 5.6。

这是我收到的错误;

追溯(最近一次通话):文件“ C:\ Users \ Oliver \ Desktop \ test.py”,cursor.execute(newitem,newdata)中的第43行#执行添加新项的SQL语句

在执行self._handle_result(self._connection.cmd_query(stmt))的文件“ C:\ Python27 \ lib \ site-packages \ mysql \ connector \ cursor.py”中,第507行

文件“ C:\ Python27 \ lib \ site-packages \ mysql \ connector \ connection.py”,行> 722,在cmd_query结果= self._handle_result(self._send_cmd(ServerCmd.QUERY,查询))

_handle_result中的文件“ C:\ Python27 \ lib \ site-packages \ mysql \ connector \ connection.py”,行> 640引发错误。get_exception(packet)

ProgrammingError:1064(42000):您的SQL语法有错误;检查>与MySQL服务器版本相对应的手册,以在第1行的'desc)VALUES('5012583200796','test')'附近使用正确的语法

这是我编写的代码;

# Add Stock bare bones
# Program that will add stock to the database

import mysql.connector

print "\t\tWelcome to the stock adding page\n"

selection = raw_input("Did you want to add stock or a new item? (Y,N)").lower()

while selection == "y":

    bcode = " " # Generate barcode variable

    while bcode == " ": # while barcode variable is empty
          bcode = raw_input("Please scan an object ") # ask for user to input barcode

    print "The barcode you scanned is", bcode

    cnx = mysql.connector.connect(user='root', password='Blackops123!', # variable to connect to foody friend database
                                     host='127.0.0.1',
                                     database='food_friend')

    cursor = cnx.cursor() # cursor to make changes to database

    query = ("SELECT barcode FROM stock_list " # query stock_list database tabelf ro barcode scanned in by user
         "WHERE barcode = %s")

    cursor.execute(query, (bcode,))# execute the query within the database

    result = cursor.fetchone() # fetch result from the query and assign variable

    if result == None: # If the barcode does not exist add a new item
        print "New item to database!\n"

        description = raw_input("Please describe product (45 character limit)") # user input for object description, limited to 45 chars as per database

        newitem = ("INSERT INTO stock_list " # SQL statement to add new item into the database with description
               "(barcode, desc) "
               "VALUES (%s,%s)")
        newdata = (bcode, description)

        cursor.execute(newitem, newdata) # executes SQL statement for adding new item

        cnx.commit() # accept addition of the new item
        print "Please scan item again as new item to add stock level" # as no stock level is added the user has to run around again. Will fix eventually

    selection = raw_input("Did you want to add stock or a new item? (Y,N)").lower()

print "returning to main menu"

end = raw_input("click something to end")

我已经尝试过按照MySQL文档中的建议在元组和字典中设置值条目,但是由于错误中显示的值被拾取,所以它仍然保持原样。我已经试过了%s,有无单括号,无济于事。

谁能建议我可能出了什么问题?

穆雷尼克

desc是SQL中的保留字(用于在order by子句中定义降序)。如果要将其用作列名,则应使用`s对其进行转义:

newitem = ("INSERT INTO stock_list " # SQL statement to add new item into the database with description
           "(barcode, `desc`) "
           "VALUES (%s,%s)")
newdata = (bcode, description)

编辑:
或者更好的是,如评论中的讨论所建议-只需将有问题的列重命名为非保留字,例如description

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

导入 WordPress 数据库文件时出现 SQL 语法错误

来自分类Dev

MySQL World数据库sql文件在插入数据时出现语法错误

来自分类Dev

使用Heroku数据片段将PostgreSQL数据库导出到csv时出现SQL语法错误

来自分类Dev

使用Heroku数据剪辑将PostgreSQL数据库导出到csv时出现SQL语法错误

来自分类Dev

尝试将Play应用程序连接到mysql数据库时出现SQL语法错误

来自分类Dev

将SQL文件导入MySQL数据库时出现错误

来自分类Dev

通过 SQLCMD 将 sql 文件从 MySQL 导入 MS SQL 时出现语法错误

来自分类Dev

将数据记录保存到数据库中时,SQL语法错误

来自分类Dev

如何修复MySQL数据库的SQL语法错误?

来自分类Dev

将图像插入数据库时,mysql中的语法错误

来自分类Dev

将日期插入数据库时的SQL语法错误(框架:codeigniter)

来自分类Dev

将日期插入数据库时的SQL语法错误(框架:codeigniter)

来自分类Dev

MySql数据库语法错误

来自分类Dev

尝试切换到(使用)数据库时的JDBC“ MySQL语法错误”

来自分类Dev

尝试从 sqlite 数据库更新数据时,Java 中出现 SQL 错误或丢失数据库(接近“.”:语法错误)错误

来自分类Dev

使用转义的 req.body 值数组插入 mysql 时出现 SQL 语法错误

来自分类Dev

将记录添加到Access数据库时出现“ INSERT INTO语句中的语法错误”

来自分类Dev

导入MySQL数据库时出现错误

来自分类Dev

在phpmyadmin中导入数据库时出现MySQL错误

来自分类Dev

尝试创建新数据库时,在“命令”附近出现错误“ SQLiteLog:(1):语法错误”?

来自分类Dev

使用CATALOG_COLLATION创建表失败,出现语法错误(将Azure数据库复制到本地开发SQL Server)

来自分类Dev

PostgreSQL:从MySQL转储导入数据库-语法错误

来自分类Dev

在数据库中创建android SQLite表时出现语法错误

来自分类Dev

尝试清除数据库时出现与学说有关的语法错误

来自分类Dev

打开“ IS”附近的数据库时出现SQLException:语法错误(代码1):

来自分类Dev

在 Android 中更新 sqlite 数据库时出现语法错误

来自分类Dev

为什么在尝试更新数据库时出现语法错误?

来自分类Dev

尝试使用Entity Framework将值保存到数据库时出现元数据错误

来自分类Dev

指定innodb数据库类型和字符集时的MySQL语法错误

Related 相关文章

  1. 1

    导入 WordPress 数据库文件时出现 SQL 语法错误

  2. 2

    MySQL World数据库sql文件在插入数据时出现语法错误

  3. 3

    使用Heroku数据片段将PostgreSQL数据库导出到csv时出现SQL语法错误

  4. 4

    使用Heroku数据剪辑将PostgreSQL数据库导出到csv时出现SQL语法错误

  5. 5

    尝试将Play应用程序连接到mysql数据库时出现SQL语法错误

  6. 6

    将SQL文件导入MySQL数据库时出现错误

  7. 7

    通过 SQLCMD 将 sql 文件从 MySQL 导入 MS SQL 时出现语法错误

  8. 8

    将数据记录保存到数据库中时,SQL语法错误

  9. 9

    如何修复MySQL数据库的SQL语法错误?

  10. 10

    将图像插入数据库时,mysql中的语法错误

  11. 11

    将日期插入数据库时的SQL语法错误(框架:codeigniter)

  12. 12

    将日期插入数据库时的SQL语法错误(框架:codeigniter)

  13. 13

    MySql数据库语法错误

  14. 14

    尝试切换到(使用)数据库时的JDBC“ MySQL语法错误”

  15. 15

    尝试从 sqlite 数据库更新数据时,Java 中出现 SQL 错误或丢失数据库(接近“.”:语法错误)错误

  16. 16

    使用转义的 req.body 值数组插入 mysql 时出现 SQL 语法错误

  17. 17

    将记录添加到Access数据库时出现“ INSERT INTO语句中的语法错误”

  18. 18

    导入MySQL数据库时出现错误

  19. 19

    在phpmyadmin中导入数据库时出现MySQL错误

  20. 20

    尝试创建新数据库时,在“命令”附近出现错误“ SQLiteLog:(1):语法错误”?

  21. 21

    使用CATALOG_COLLATION创建表失败,出现语法错误(将Azure数据库复制到本地开发SQL Server)

  22. 22

    PostgreSQL:从MySQL转储导入数据库-语法错误

  23. 23

    在数据库中创建android SQLite表时出现语法错误

  24. 24

    尝试清除数据库时出现与学说有关的语法错误

  25. 25

    打开“ IS”附近的数据库时出现SQLException:语法错误(代码1):

  26. 26

    在 Android 中更新 sqlite 数据库时出现语法错误

  27. 27

    为什么在尝试更新数据库时出现语法错误?

  28. 28

    尝试使用Entity Framework将值保存到数据库时出现元数据错误

  29. 29

    指定innodb数据库类型和字符集时的MySQL语法错误

热门标签

归档