Mysql
 sql >> Database >  >> RDS >> Mysql

Archivio di array multidimensionali CodeIgniter nella singola colonna del database mysql

Come dice il messaggio, non hai la chiave $data['view_count'] ma hai $data[2017][6][10]['count'] valore. Presumo che le date vengano modificate dinamicamente, quindi è necessario ottenere il valore dell'array interno tramite la chiave count .Se il tuo array ha sempre chiavi simili, ad esempio $data[year][month][day][count] , puoi utilizzare il codice (bit modificato) da questo rispondi per ottenere quel valore chiave. Inserisci il tuo modello

private function getCount($arr, $search)
{
    $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr)); 
    foreach($iterator as $key => $value) {
        if($search == $key && $value !== '') {
            return $value;
        }
    }
    return false;
}

Quindi nel tuo primo metodo usa il valore filtrato attraverso questa funzione:

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;
}