在使用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')