python操作mysql写入数据出现:(1064, "You have an error in your SQL syntax;)

在使用python语言的pymysql将数据写入数据库中的时候,出现如下的问题:

代码如下:

"insert into dell_1 values({},{},{},{})".format('11', '12', '13','14')

错误如下:

pymysql.err.ProgrammingError: (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 ',U271,京东物流确实神速,次日达,包装完好,宝贝好沉,辛è\x8b' at line 1")

原因是,不符合sql语句表达规范。由于之前定义的4个列字段类型都是varchar可变长字符串。

rule = "create table dell_1 (comment_time varchar(100), order_type varchar(100), comment_text varchar(500),comment_append varchar(255))"

因此写mysql语句的时候应该如下:

# 待写入的数据传入的时候必须要加引号。
cursor.execute("insert into table_name values('数据1','数据2')")

而实际中我格式化的mysql语句是这样的

"insert into dell_1 values({},{},{},{})".format('11', '12', '13','14')

输出:

'insert into dell_1 values(11,12,13,14)'

格式化后根本没有引号,也就不符合mysql语句的写法。

解决办法:

"insert into dell_1 values('{}','{}','{}','{}')".format('11', '12', '13','14')

 

你可能感兴趣的:(其他,python,pymysql,mysql,1064错误)