可能重复:
PHP: Warning: sort() expects parameter 1 to be array, resource given
我一直收到这个奇怪的错误。然而,当我检查它时,似乎很好。
$stuff=mysql_query('SELECT id, name FROM albums');
$albums_list='';
print_r($stuff);
while ($row=mysql_fetch_array($stuff))
{
print_r($row);
$albums_list .= "<option value=" . $row[0]['id'] . ">" . $row[0]['name'] . "</option>\n";
}
print_r($stuff);
返回
CI_DB_mysql_result Object (
[conn_id] => Resource id #37
[result_id] => Resource id #74
[result_array] => Array ( )
[result_object] => Array ( )
[current_row] => 0
[num_rows] => 1
[row_data] =>
)
答案 0 :(得分:5)
你回来了CodeIgniter object。您可以使用它来调用实例上的_fetch_assoc()
。
答案 1 :(得分:1)
这很奇怪,所以mysql_query返回一个对象而不是结果。
然后尝试:
while ($row=mysql_fetch_array($stuff->result_id))
就像那个对象堆栈中的资源一样。
答案 2 :(得分:1)
我相信您当前的资源位于$stuff->result_id
,但使用方法here可能会更好。 result_array
可能会做你正在尝试的事情。
作为旁注:
while ($row=mysql_fetch_array($stuff))
{
print_r($row);
// don't use row[0]['id']. use row['id'].
// You won't get a multi-dimensional array back in any case
$albums_list .= "<option value=" . $row['id'] . ">" . $row['name'] . "</option>\n";
}
答案 3 :(得分:1)
mysql_query()
只能返回布尔值或资源。在正常情况下,您无法获得错误。
这意味着可能发生以下三件事之一:
答案 4 :(得分:0)
试试这个:
$stuff=mysql_query('SELECT id, name FROM albums');
$albums_list='';
print_r($stuff);
while ($row=mysql_fetch_assoc($stuff))
{
print_r($row);
$albums_list .= "<option value=" . $row['id'] . ">" . $row['name'] . "</option>\n";
}
或
试试这个:
$stuff=mysql_query("SELECT id, name FROM albums");