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特殊字符内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!
您可能感兴趣的文章:
- ThinkPHP 模板substr的截取字符串函数详解
- thinkPHP内置字符串截取函数用法详解
- thinkphp中字符截取函数msubstr()用法分析
- ThinkPHP字符串函数及常用函数汇总
- ThinkPHP的截取字符串函数无法显示省略号的解决方法
- Thinkphp模板中截取字符串函数简介