Неустранимая ошибка: невозможно использовать объект типа stdClass в качестве массива в - PullRequest
25 голосов
/ 24 марта 2011

Я получаю сообщение об ошибке:

«Неустранимая ошибка: невозможно использовать объект типа stdClass в качестве массива в строке» 183

Из этого кода:

$getvidids = $ci->db->query(
    "SELECT * FROM videogroupids " . 
    "WHERE videogroupid='$videogroup' AND used='0' LIMIT 10");

foreach ($getvidids->result() as $row){
    $vidid = $row['videoid'];              //This is line 183
}

Кто-нибудь знает, что не так с приведенным выше кодом? Или что означает эта ошибка?

Ответы [ 3 ]

63 голосов
/ 24 марта 2011

CodeIgniter возвращает строки результатов в виде объектов, а не массивов. Из руководства пользователя :

результат (а)


Эта функция возвращает результат запроса в виде массива объектов или пустого массива при ошибке.

Вам нужно будет получить доступ к полям, используя следующую запись:

foreach ($getvidids->result() as $row) {
    $vidid = $row->videoid;
}
15 голосов
/ 24 марта 2011

, если вы действительно хотите использовать массив, вы можете использовать:

$getvidids->result_array()

, который возвращает ту же информацию, что и ассоциативный массив

0 голосов
/ 19 ноября 2013

Извините. Хотя уже немного поздно, но надеюсь, что это поможет и другим.Всегда используйте объект stdClass.eg

 $getvidids = $ci->db->query("SELECT * FROM videogroupids WHERE videogroupid='$videogroup'   AND used='0' LIMIT 10");

foreach($getvidids->result() as $key=>$myids)
{

  $vidid[$key] = $myids->videoid;  // better methodology to retrieve and store multiple records in arrays in loop
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...