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

Meddelelse:count():Parameteren skal være en matrix eller et objekt, der implementerer Countable codeigniter på centos

Problemet i dit spørgsmål er, som jeg kan se, at du forsøger at tælle et ikke-array eller ikke-tælleligt objekt.

Tanker

  1. I hele din kode har du ikke skrevet count() hvilket ser ud til at være årsag til problemet, hvorfor?
  2. Hvorfor skal du tælle $q->row(); når du selv begrænser resultatet til 1 // as you said the problem is here $row = $q->row();

Mulig løsning

Når du bruger row() dvs. $q->row(); du får en non- tælleligt objekt ,

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

men når du bruger result() dvs. $q->result(); , vil det resultere i en række objekter eller i tilfælde af result_array() , en række arrays, selvom du begrænser dem til én.

// 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
        )

)

Begge er nu et array og kan derfor tælles.

Håber det hjælper dig.




  1. Slet data fra afhængige tabeller

  2. Forespørgsel for at få samlede ordrer afgivet af en bestemt kunde i sidste år henter gentagne datoer, hvor der ikke eksisterer nogen ordre

  3. Bedste måde at gemme span på tid i en MySQL database?

  4. Bedste måde at vælge tilfældige rækker PostgreSQL