登录

php下如何将json格式的数据直接存入mysql数据库?

使用php json_encode 过,直接存入mysql报错,google一下 没有找到合适的解决方法,请问如何处理才能将json格式的数据存入mysql

代码:

$imgs_str = json_encode($imgs_array); $imgs_str = addslashes($imgs_str); $update_query = "updatearticleset imageList = $imgs_str where id = $targetid";

# PHP
PHP中文网PHP中文网2198 天前942 次浏览

全部回复(6) 我要回复

  • 骆辰

    骆辰2018-08-02 17:51:59

    但是要求服务器内存2g~跟电脑一个吊样了

    回复
    0
  • 骆辰

    骆辰2018-08-02 17:50:58

    mysql升级到5.7以后支持直接json入库了

    回复
    0
  • PHPzhong

    PHPzhong2017-04-10 14:29:20

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

    {"key":"value"}
    

    那sql就是这样的:

    insert into `table` (`field`) values ("{"key":"value"}")
    

    所以就出错了

    完整代码:

    $data = json_encode($array);
    
    // 过滤
    $data = addslashes($data);
    
    // 入库
    $db->insert($table_name,array(
        'field' => $data,
    ));
    

    回复
    0
  • 高洛峰

    高洛峰2017-04-10 14:29:20

    PHP 有一个 serialize 序列化函数,这问题你应该查文档。

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-10 14:29:20

    输入有点不对题,PHP 里的JSON也是用json_encode 来的(自己组合出来的当我没说哈),用 serialize 函数 吧。直接存数组好了。

    回复
    0
  • PHP中文网

    PHP中文网2017-04-10 14:29:20

    其实没有必要在MYSQL中存储JSON JSON这样的格式:{"key":"vlaue"}; 在PHP 和 MYSQL 交互过程中很多余。

    如:@cevin 所说,

    $data = json_encode($array);
    
    // 过滤
    $data = addslashes($data);
    
    // 入库
    $db->insert($table_name,array(
        'field' => $data,
    ));
    

    实际上已经做了一次无用功那就是 json_encode($data); 何不直接 addslashes($data) 后直接入库?

    回复
    0
  • 取消回复发送