直接使用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));  
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 2 个月前
8c391e04 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐