Python: 写ORM插入MySql数据库报错:Incorrect string value: '

Python: 写ORM插入MySql数据库报错:Incorrect string value: ',第1张

我用Python写ORM,插入一条数据进MySql的时候报了:1366 Incorrect string value: '

这条数据是有中文的,所以很明显是编码问题!

我插入的数据格式

以下是我的解决办法!

看我的文章,中有一篇是修改MySql的my.ini配置文件,修改MySql的字符编码格式修改成utf8格式的编码!

有可能你这步改完就可以了! 也有可能这步 *** 作完还是报错!那就看第二步。

第一步 *** 作完了,但是添加数据的时候还是报错,原因是因为第一步还没 *** 作完,你就已经建了一张表,我的表名是app_book。所以这张app_book的字符编码还是按我没修改字符编码之前的编码格式,所以这个时候我需要将这张表的编码格式转换一下,具体 *** 作如下!

比如:你可以先查看这张app_book表中的每个字段的编码格式

改变表的编码,为 utf8mb4 或者 utf8

OK! 完成以上 *** 作,再次执行ORM语句:

这次就没报错了,添加成功!

Python连接mysql数据库报错

这里的意思是:数据库连不上啊。

可能是网络问题,可能是防火墙问题,可能是3306端口没开。你先排除这些问题吧。用一些mysql工具连接测试看,比如SQLyog 测试。

答:数据库本身是不支持字典类型的(已知的绝大多)方法有两种:1、把字典或者json格式数据作为字符串(string)直接插入、读取的时候再转为字典。2、为了避免某些字符、引号等转义问题发生、可以使用base64编码后导入数据库、读取时候再用base64解码。也可以试试这个:sql="insertintoaccount·userdata(user、passwd)values(%s、%s)"cursor.execute(sql、(name、passwd-md5))试试这个,或者:sql="insertintoaccunt.userdata(user.passwd)values(%s%s)"%(name、passwd-md5)oursor.execute(sql)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6168293.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存