Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Armazenamento de matriz multidimensional do CodeIgniter na coluna única do banco de dados mysql


Como a mensagem diz, você não tem a chave $data['view_count'] mas você tem $data[2017][6][10]['count'] valor. Suponho que essas datas sejam alteradas dinamicamente, então você precisa obter o valor da matriz interna pela chave count .Se sua matriz sempre tiver chaves semelhantes, por exemplo, $data[year][month][day][count] , você pode usar o código (modificado por bits) de este resposta para obter esse valor de chave. Coloque seu modelo
private function getCount($arr, $search)
{
    $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr)); 
    foreach($iterator as $key => $value) {
        if($search == $key && $value !== '') {
            return $value;
        }
    }
    return false;
}

Então, no seu primeiro método, use o valor filtrado por esta função:
public function setView($data)
{
    $count = $this->getCount($data, 'count');

    if ($count !== false) {
        $setData = $this->db->where('short', 'honwl')->update('ci_links', $count);
        return $setData;
    }
    return false;
}