sql >> Databasteknik >  >> RDS >> Mysql

CodeIgniter flerdimensionell array lagra i mysql databas en kolumn

Som meddelandet säger, du har ingen nyckel $data['view_count'] men du har $data[2017][6][10]['count'] värde. Jag antar att dessa datum ändras dynamiskt så att du måste få värdet av den inre arrayen efter nyckel count .Om din array alltid har liknande nycklar, t.ex. $data[year][month][day][count] , du kan använda kod (bit modifierad) från detta svara för att få det nyckelvärdet. Lägg in din modell

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

Använd sedan i din första metod värde filtrerat genom denna funktion:

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. Komma igång Justera prestanda i Azure SQL Database

  2. MySQL:Vad händer med icke aggregerade fält på en GROUP BY?

  3. Hur man visar aktuella anslutningar i MySQL Workbench med hjälp av GUI

  4. Konvertera MS SQL-skript till Mysql och Oracle