Mysql
 sql >> Datenbank >  >> RDS >> Mysql

CodeIgniter mehrdimensionaler Array-Speicher in einer einzelnen Spalte der MySQL-Datenbank

Wie die Meldung sagt, haben Sie den Schlüssel $data['view_count'] nicht aber du hast $data[2017][6][10]['count'] Wert. Ich gehe davon aus, dass diese Daten dynamisch geändert werden, sodass Sie den Wert des inneren Arrays nach Schlüssel count abrufen müssen .Wenn Ihr Array immer ähnliche Schlüssel hat, dh $data[year][month][day][count] , können Sie Code (bit modifiziert) von this verwenden Antwort um diesen Schlüsselwert zu erhalten. Geben Sie Ihr Modell ein

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

Verwenden Sie dann in Ihrer ersten Methode den durch diese Funktion gefilterten Wert:

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