将 php 数组保存到 mariadb 动态列

saving php array to mariadb dynamic colum

我有一个这样的数组

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

所以在更新到 mariaDB 期间

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

我想这样保存数组('Subscription',1,'Streaming',1,'Download',0)

有什么建议吗?

你可以试试这个:

<?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';

希望能解决问题。

您可以使用 array_map and implode 的组合。

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