将php数组保存到mariadb动态列

I have an array like this

   $test = array(
        'Subscription' => '1',
        'Streaming' => '1',
        'Download' =>  '0'
    )

so during updating to mariaDB

  $query = 'UPDATE table_1 set category_dynamic = COLUMN_CREATE(' . $test . ') where id = 1';
  $this->Model->query($query);

I want to save the array this way ('Subscription',1,'Streaming',1,'Download',0)

any suggestion ?

You can try this :

<?php

$test = array(
        'Subscription' => '1',
        'Streaming' => '1',
        'Download' =>  '0'
);

$data = '';
foreach($test as $key=>$value)
{
    $data .= '"'.$key.'"'.', '.$value.', ';
}

$data = rtrim($data,', ');

$query = 'UPDATE table_1 set category_dynamic = COLUMN_CREATE(' . $data . ') where id = 1';

Hope it will solve the problem.

You could use a combination of array_map and implode for that.

$test = array(
        'Subscription' => '1',
        'Streaming' => '1',
        'Download' =>  '0'
    );
$list = implode(',', array_map(function ($v, $k) { return "'".$k."'" . ',' . $v; }, $test, array_keys($test)));


$query = 'UPDATE table_1 set category_dynamic = COLUMN_CREATE(' . $list . ') where id = 1';
$this->Model->query($query);