php数组入库mysql,用serialize后有:(冒号)不能入库成功,如何解决冒号入库mysql

php数组入库mysql,用serialize后有:(冒号)不能入库成功,如何解决冒号入库mysql,第1张

希望能给出更详细的问题描述, 或者给出你的代码或者截图等

冒号根本不需要转义, 直接写进去即可

INSERT INTO `test001` (`id`, `value`) VALUES ('1', 'asdf:234')

在 /etc/my.cnf 文件里加上如下:

sql_mode='NO_ENGINE_SUBSTITUTION',然后重启Mysql服务就可以了。

一、异常信息:

errorCode:1366 Caused by: java.sql.SQLException: Incorrect string value: '\xE7\xAE...' for column 'description' at row 1

二、异常原因:

(1)、字符集冲突,mysql insert入库的时候,由于插入数据编码与数据库字段字符集不一致,导致数据无法插入。

(2)、在mysql数据库中执行show character set,可以看到不同的字符集的最大长度不同。如果执插入utf8编码数据,数据库表中字段字符集是latin。(查询字段字符集方法:show full columns from user),如果最大长度为3的utf8字符集存储到最大长度为1的latin数据库字段中,数据会被截断,无法正常插入,导致异常。

建议您使用数据库连接池(Connection pool)或长连接(Persistent connection)方式连接MySQL Database on Azure。数据库连接池负责建立,管理和分配数据库连接。

当应用程序申请一个数据库连接时,它优先分配一个现有的空闲的数据库连接,而不是重新建立一个。当数据库连接使用完毕后,它会回收该连接以备再次使用,而不是直接关闭该连接。


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

原文地址: http://outofmemory.cn/zaji/8734421.html

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

发表评论

登录后才能评论

评论列表(0条)

保存