sql >> Databasteknik >  >> RDS >> Mysql

Meddelande:count():Parametern måste vara en array eller ett objekt som implementerar Countable codeigniter på centos

Problemet i din fråga är som jag ser är att du försöker räkna ett icke-array eller icke-räknebart objekt.

Tankar

  1. I hela din kod har du inte skrivit count() som verkar orsaka problemet, varför?
  2. Varför behöver du räkna $q->row(); när du själv begränsar resultatet till 1 // as you said the problem is here $row = $q->row();

Möjlig lösning

När du använder row() dvs $q->row(); du får en icke- räknebart objekt ,

// row() dummy data
stdClass Object
(
    [id] => 15
    [event_id] => 3
    [event_image] => c1fa8a5d5505047251fd928aa312b16c.jpg
)

men när du använder result() dvs $q->result(); , kommer det att resultera i en array av objekt eller i fallet med result_array() , en array av arrayer, även om du begränsar dem till en.

// result() dummy data -- same as result_object()
(
    [0] => stdClass Object
        (
            [id] => 15
            [event_id] => 3
            [event_image] => c1fa8a5d5505047251fd928aa312b16c.jpg
        )

)

// result_array() dummy data
Array
(
    [0] => Array
        (
            [id] => 15
            [event_id] => 3
            [event_image] => c1fa8a5d5505047251fd928aa312b16c.jpg
        )

)

Båda är nu en array och därmed räknebara.

Hoppas det hjälper dig.




  1. Gå med i subquery med doktrin 2 DBAL

  2. mysql:använd SET eller många kolumner?

  3. Påverkar antalet kolumner MYSQL-hastigheten?

  4. Få extra rader - Efter att ha sammanfogat de 3 borden med Left Join