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

CodeIgniter multidimensional array lager i mysql database enkelt kolonne

Som meddelelsen siger, har du ikke nøglen $data['view_count'] men du har $data[2017][6][10]['count'] værdi. Jeg antager, at disse datoer ændres dynamisk, så du skal få værdien af ​​indre array efter nøgle count .Hvis dit array altid har lignende nøgler, f.eks. $data[year][month][day][count] , kan du bruge kode (bit modificeret) fra dette svar for at få den nøgleværdi. Indsæt din model

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

Brug derefter værdi filtreret gennem denne funktion i din første metode:

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


  1. Timeout-indstilling for SQL Server

  2. Kan ikke indstille small_case_table_names i MySQL 8.x på Windows 10

  3. JPA - EclipseLink - Sådan ændres standardskema

  4. Hurtigste måde at dumpe Python ordbog (dict) objekt til en MySQL tabel?