2016-09-07 5 views
1

私はMySQLで配列を保持しているいくつかのユーザー設定があります。私は新しい文字列を追加したい場合、私はこの配列に($dashboard_itemは、ダッシュボード、進行中のような文字列が含まれています)今mysql配列に追加

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

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

:これは私が現在の配列を取得する方法です考えていた:

$array[] = serialize($dashboard_item); 

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

私はそれを更新しませんが、この呼び出しをします。配列は私の最初の呼び出しと同じままで、何も追加されません。配列に追加しようとせずにそのdashboard_arrayフィールドを更新しただけでは、配列に追加することで何かしていることを知っているので、値を正しく置き換えます。

+0

フィールド配列dashboard_arrayを正しく更新するには、$ arrayは文字列で、配列ではないはずですか? – vincenth

+0

@vincenth私はそれを得た。あなたがそれをチェックアウトしたい場合は以下のように動作します。 – Packy

答えて

0

これは私が動作させるために行ったものです。私はそれに追加する前に配列をunserializeしなければならなかった。

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