sql >> Database >  >> RDS >> Mysql

CodeIgniter multidimensionale array-opslag in één kolom van de mysql-database

Zoals het bericht zegt, heb je geen sleutel $data['view_count'] maar je hebt $data[2017][6][10]['count'] waarde. Ik neem aan dat die datums dynamisch worden gewijzigd, dus je moet de waarde van de binnenste array krijgen met de sleutel count .Als uw array altijd vergelijkbare sleutels heeft, bijv. $data[year][month][day][count] , kunt u code gebruiken (beetje aangepast) van dit antwoord om die sleutelwaarde te krijgen. Zet je model in

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

Gebruik vervolgens in uw eerste methode de waarde gefilterd door deze functie:

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. Java PreparedStatement en ON DUPLICATE KEY UPDATE:hoe weet ik of een rij is ingevoegd of bijgewerkt?

  2. Query Performance Insight:ontdekken wat resources van uw Azure SQL-database verbruikt?

  3. Hoe kan ik het ID van de ingevoegde rij retourneren met behulp van Voorbereide verklaring?

  4. Wat is het verschil tussen enkele aanhalingstekens en dubbele aanhalingstekens in PostgreSQL?