Php 添加到mysql阵列

Php 添加到mysql阵列,php,mysql,arrays,Php,Mysql,Arrays,我在MySQL的数组中保留了一些用户偏好。以下是获取当前阵列的方式: $array = DB::queryFirstField("SELECT dashboard_array FROM compel_dashboard WHERE user_id = %i", $user_id); 这给了我: "s:19:"dashboard-reccomend";" 现在,如果我想向这个数组添加一个新字符串($dash

我在MySQL的数组中保留了一些用户偏好。以下是获取当前阵列的方式:

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

"s:19:"dashboard-reccomend";"
现在,如果我想向这个数组添加一个新字符串(
$dashboard\u item
包含一个类似dashboard progress的字符串),我想:

    $array[] = serialize($dashboard_item);

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

当我打这个电话时,虽然它没有更新。数组与我的第一次调用保持不变,没有添加任何内容。如果我只是更新
dashboard\u数组
字段,而不尝试添加到数组中,它会很好地替换该值,因此我知道我正在添加到数组中

这就是我让它工作的原因。在添加到数组之前,我必须取消序列化该数组

        $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);

这就是我让它工作的原因。在添加到数组之前,我必须取消序列化该数组

        $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);

$array不应该是一个字符串而不是一个数组来正确更新字段仪表板数组吗?@vincenth我知道了。如果你想查看它,下面的方法很有效。$array不应该是一个字符串而不是一个数组来正确更新现场仪表板数组吗?@vincenth我知道了。如果您想查看它,下面的方法很有效。