在这用到pymysql为例,其他的可作为参考。
- 一、关于(1054, "Unknown column 'xxxxxxx' in 'field list'")
如果你写的是下面这样的话,以后记住别这样写了:
add_produto = """INSERT INTO produto(nome,
data_lcm, preco)
VALUES (%s, %s, %s)"""% (va, 'input_date', 'vc')
cursor.execute(add_produto)
改为:
add_produto = """INSERT INTO produto(nome,
data_lcm, preco)
VALUES (%s, %s, %s)"""
cursor.execute(add_produto, (va, input_date, vc))
为什么呢?
首先,这听起来像是你的问题是如何在Python和SQL数据类型之间进行转换,引用和正确地转义等等。数据库引擎已经知道如何做到这一点,所以只要让它为你做。 简单点的意思就是不用你用% (va, 'input_date', 'vc')来进行转换,只需要将你定义的值在execute方法里面进行引用就好了,你自己去定位值有点多此一举了。
- 二、关于'latin-1' codec can't encode characters in position 60-62: ordinal not in range(256)的错误
这是编码问题,解决方法很简单。connect方法中加入charset=‘编码’例如:
db = pymysql.connect("localhost", "root", "root", "xxxxx",charset='utf8')
只需要在连接时加上编码格式就好了,如果你是其他编码按你的要求改就好,因为在创建数据库时你设置了数据库编码。
- 三、关于(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 '' at line 1")问题
需要去检查你的sql语句有没有问题,一般存在较多的问题是单引号‘和`的问题,还有空格的问题,`是~的英文键,如果自己找的话,肯定觉得自己的sql语句完全没错,但是总是出错,解决这类问题可以使用问题一中的解决方法。