Php 添加到mysql阵列
我在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
$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我知道了。如果您想查看它,下面的方法很有效。