php将json格式的数据直接存入mysql数据库

直接使用php函数 json_encode ,数据存入mysql时会报错:

Php代码   收藏代码
  1. $imgs_str = json_encode($imgs_array);  
  2. $imgs_str = addslashes($imgs_str);  
  3. $update_query = "updatearticleset imageList = $imgs_str where id = $targetid";  

 

解决方法

json编码后的数据是这样的:

Js代码   收藏代码
  1. {"key":"value"}  

 

那sql就是这样的:

Sql代码   收藏代码
  1. insert into `table` (`field`) values ("{"key":"value"}")  

 

PHP addslashes() 函数

在每个双引号(")前添加反斜杠:

定义和用法

addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。

预定义字符是:

  • 单引号(')
  • 双引号(")
  • 反斜杠(\)
  • NULL

提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。

注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

所以就出错了

完整代码:

Php代码   收藏代码
  1. $data = json_encode($array);  
  2.    
  3. // 过滤  
  4. $data = addslashes($data);  
  5.    
  6. // 插入数据库  
  7. $db->insert($table_name,array('field' => $data));  
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值