当前位置: 代码网 > it编程>编程语言>Php > thinkphp解决数据传入数据库中特殊字符的问题小结

thinkphp解决数据传入数据库中特殊字符的问题小结

2024年05月15日 Php 我要评论
thinkphp解决数据传入数据库中特殊字符的问题为了解决这个问题,你需要确保在插入数据库之前,不对文本内容进行html实体编码。如果你是从前端获取的数据,检查是否在发送请求前使用htmlspecia

thinkphp解决数据传入数据库中特殊字符的问题

为了解决这个问题,你需要确保在插入数据库之前,不对文本内容进行html实体编码。如果你是从前端获取的数据,检查是否在发送请求前使用 htmlspecialchars() 或类似方法进行了转义。如果是后端处理逻辑导致的转义,那么在插入数据库之前取消转义或避免对其进行转义。

如果是在 laravel 框架下,一般不需要手动处理此类转义问题,因为 eloquent orm 在处理字符串时不会自动进行html实体编码。但如果你确实遇到了这种情况,可以使用 php 的 html_entity_decode() 函数还原原始字符串

例子

$operation_code = html_entity_decode($name, ent_quotes, 'utf-8');
$data = [
    'operation_seq_num' => $num,
    'wip_entity_name' => $wip_entity_name,
    'operation_code' => $operation_code,
    'creation_date' => time(),
    'begin_date' => time(),
    'employee_num' => $employee_num,
    'created_by' =>  $username
];
db::table('wip_production')->insert($data);

扩展:

thinkphp3.2如何处理大规模并发写入问题

1.大规模并发写入,出现数据库锁死,数据写入失败,数据表损坏等问题

2.锁表需要配合事务使用

3.具体代码如下

m()->starttrans();
$lot_check = m()->table('order')->lock(true)->where(['id' => $id])->field('id,type')->find();
$data = ['status'=>2];
$res = m()->save($data);
if($res)
{
m()->commit(); #提交事务
}else{
m()->rollback(); #回滚事务
}

4.采用的方法主要就是事务配合锁表,解决大并发写入问题

到此这篇关于thinkphp解决数据传入数据库中特殊字符的问题的文章就介绍到这了,更多相关thinkphp特殊字符内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com