php - 添加到mysql数组

标签 php mysql arrays

我将一些用户首选项保存在 MySQL 的数组中。这就是我获取当前数组的方式:

$array = DB::queryFirstField("SELECT dashboard_array FROM compel_dashboard 
                                           WHERE user_id = %i", $user_id);

这给了我:

"s:19:"dashboard-reccomend";"

现在,如果我想向这个数组添加一个新字符串($dashboard_item 包含一个类似 dashboard-progress 的字符串),我在想:

    $array[] = serialize($dashboard_item);

    $query  = DB::update('compel_dashboard', array(
                    'dashboard_array' => $array
                  ), "user_id=%s", $user_id);

当我进行此调用时,它不会更新。该数组与我的第一次调用相同,没有添加任何内容。如果我只是更新 dashboard_array 字段而不尝试添加到数组,它会很好地替换值,所以我知道它是我在添加到数组时所做的事情。

最佳答案

这就是我为让它工作所做的。在添加到它之前,我必须反序列化数组。

        $dashboard = DB::queryFirstField("SELECT dashboard_array FROM compel_dashboard 
                                      WHERE user_id = %i", $user_id);

        $array[] = unserialize($dashboard);

        array_push($array, $dashboard_item);

        $new_dash = serialize($array);

        $query  = DB::update('compel_dashboard', array(
                        'dashboard_array' => $new_dash
                      ), "user_id=%s", $user_id);

关于php - 添加到mysql数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39376913/

相关文章:

php - 我想要一个包含自定义参数的点赞按钮,我该怎么做?

PHP:将日期转换为本地主机上的单词

javascript - 如何在 Handsontable 中创建跨越两列的行标题?

mysql - 使用 SUM 从两个表请求

mysql - 授予权限时出现访问被拒绝错误

javascript - 有没有办法让事件总时间始终为24小时

java - Android 检查字符数组中的数字

php - 使用 html 5 或 php 来操作服务器上的文件

javascript - 如何截取youtube屏幕截图

php - 如何制作 5 位字母数字顺序字符串