Неустранимая ошибка: нельзя использовать объект типа stdClass в качестве массива в
Я получаю сообщение об ошибке:
"Неустранимая ошибка: нельзя использовать объект типа stdClass в качестве массива в строке" on line 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
}
Кто-нибудь знает, что случилось с вышеуказанным кодом? Или что означает эта ошибка?
Ответы
Ответ 1
CodeIgniter возвращает результирующие строки как объекты, а не массивы. Из руководства :
результат (а)
Эта функция возвращает результат запроса в виде массива объектов или пустой массив при ошибке.
Вам нужно будет получить доступ к полям, используя следующие обозначения:
foreach ($getvidids->result() as $row) {
$vidid = $row->videoid;
}
Ответ 2
если вы действительно хотите использовать массив, который вы можете использовать:
$getvidids->result_array()
который возвращает ту же информацию, что и ассоциативный массив.
Ответ 3
Извините. Хотя это немного поздно, но надеюсь, что это тоже поможет другим.
Всегда используйте stdClass object.e.g
$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
}