为了账号安全,请及时绑定邮箱和手机立即绑定

将json数据作为数组存储在数据库中

将json数据作为数组存储在数据库中

PHP
慕慕森 2022-01-08 20:36:47
我正在开发一个项目,用户可以在其中填写他/她的个人资料。因此,在存储用户的社交媒体链接时,我有一个 json 文件,其中包含名称、favicon、url 等所有引用。所以我可以使用 json_decode foreach 它并显示一个文本字段。但是如何将数据库中输入的所有链接存储为 json 格式并使用完整的 URL 检索它们。这是json文件{  "facebook": {    "icon": "fab fa-facebook",    "title": "Facebook",    "url": "https://facebook.com/%s"  },  "instagram": {    "icon": "fab fa-instagram",    "title": "Instagram",    "url": "https://instagram.com/%s"  }}这就是我显示它的方式 <?php foreach($available_buttons as $key => $button):  ?>       <div class="col-md-4 mb-3">            <div class="form-group">                 <label ><i class="<?= $button->icon ?> mr-2"></i> <?= $button->title ?></label>                 <input type="text" name="buttons[<?= $key ?>]" class="form-control" />            </div>       </div <?php endforeach; ?>我正在使用 json_encode 处理它并将其提交给 db$buttons = json_encode(clean_array($_POST['buttons']));在干净的数组函数中传递数据function clean_array(Array $data) {    foreach($data as $key => $value) {        $data[$key] = filter_var($data, FILTER_SANITIZE_STRING);    }    return $data;}但是当我尝试提交时,我在数据库中得到了错误,例如“{'instagram': 'false', 'instagram': 'false'}”我该怎么做?
查看完整描述

2 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

您可以将数据作为 JSON 存储在数据库中,然后从数据库中再次获取并使用 json_decode 进行转换。MySQL 支持 JSON 数据类型。看看这个链接。

https://dev.mysql.com/doc/refman/5.7/en/json.html


查看完整回答
反对 回复 2022-01-08
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

filter_var() 失败时可以返回 FALSE,查看文档:https : //www.php.net/manual/en/function.filter-var.php


作为第一个参数,您应该传递标量或字符串,但您传递数组 $data(数组不是标量),因此 filter_var 失败并返回 false。也许你想传递 $value?


例如,你的函数应该是什么样子的例子


function clean_array(Array $data) {

    foreach($data as $key => $value) {

        $data[$key] = filter_var($value, FILTER_SANITIZE_STRING);

    }


    return $data;

}


查看完整回答
反对 回复 2022-01-08
  • 2 回答
  • 0 关注
  • 271 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信