数据库中插入字符串

本文探讨了一次邮件系统BUG导致的邮件丢失问题,详细分析了问题的原因在于玩家发送的邮件内容中包含特殊字符,干扰了SQL语句的正常执行。提出了两种解决方案:一是将字符串类型数据转换为二进制数据进行存储;二是使用转义符对特殊字符进行转义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近邮件系统出了bug,是将邮件插入数据库失败,导致玩家的邮件丢失。

本来sql语句是:
insert into mail(ID,SOURNAME,DESTNAME,TAXT) values(1,"aaa","bbb","祝贺升级!!!!");
这样当然没有问题,可是有些玩家却偏偏喜欢发些复杂的东西,像这样的
insert into mail(ID,SOURNAME,DESTNAME,TAXT) values(1,"aaa","bbb","祝贺升级!!!! "^-^"");
表格里的字符串部分本来是用""包含的,可是玩家邮件正文的字符串里也包含了""这个符号,就像这样 "祝贺升级!!!! "^-^"",这样的会导致整条语句插入数据库失败
后果很严重,原因却很简单。

想出来2个办法:
一个是将字符串类型都转成二进制数据来插入,因为二进制是不用管符号的。这样写代码的时候简单了,可是如果要直接从数据库操作来读取这段数据,而不是通过程序重新转换成字符串,读出来的东西基本是看不懂的。
还有一个,是在插入数据库之前,将字符串中的""符号通通解析一边,用转义符"\""来替换掉,呵呵,更喜欢这个方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值