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