Mysql
 sql >> Base de données >  >> RDS >> Mysql

Message :count() :le paramètre doit être un tableau ou un objet qui implémente Countable codeigniter sur centos

Le problème dans votre question est que je vois que vous essayez de compter un objet non-tableau ou non dénombrable.

Réflexions

  1. Dans tout votre code, vous n'avez pas écrit le count() qui semble être à l'origine du problème, pourquoi ?
  2. Pourquoi avez-vous besoin de compter $q->row(); lorsque vous limitez vous-même le résultat à 1 // as you said the problem is here $row = $q->row();

Solution possible

Lorsque vous utilisez row() c'est-à-dire $q->row(); vous obtenez un non- objet dénombrable ,

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

mais lorsque vous utilisez result() c'est-à-dire $q->result(); , il en résultera un tableau d'objets ou dans le cas de result_array() , un tableau de tableaux, même si vous les limitez à un seul.

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

)

Les deux sont maintenant un tableau et donc dénombrables.

J'espère que cela vous aidera.