0

我在模型中有以下函数,但是它不断返回:

消息:mysql_fetch_array():提供的参数不是有效的 MySQL 结果资源

我一辈子都想不通为什么。

    function getNames() {
    $query1 = $this->db->query("SELECT * FROM Device_tbl ORDER BY Manufacturer");   
    $dev = array();
    while($row = mysql_fetch_array($query1))
        {
            $manu =  $row['Manufacturer'];
            $mod = $row['Model'];
            $dev[] = $manu.' '.$mod;
        }
    return $dev->result();
}

任何人都可以帮忙吗?

CodeIgniter 的答案是:

    $query1 = $this->db->query("SELECT * FROM table");  

    foreach($query1->result_array() as $row)
        {
            $manu =  $row['column1'];
            $mod = $row['column2'];
            echo $manu.' '.$mod;
        }
    return $query1->result();
4

2 回答 2

5

问题是您将 CodeIgniter 数据库方法与内置 PHP 数据库方法混合使用。mysql_fetch_array需要资源,而不是 CI 查询对象。

查看有关获取结果的文档。

于 2012-10-05T23:19:54.187 回答
1

有时,当您要处理大量数据(行)时,您可能希望使用原生 php mysql 函数,如 mysql_fetch_array 来节省内存(为了获得最佳的内存节省,我更喜欢 mysql_fetch_row)。在这种情况下,您可以使用:

try {

    $query = $this->db->query("SOME QUERY");


    while($row = mysql_fetch_row($query->result_id)) {

        /* ... */

    }

    $query->free_result(); //we talked about memory saving right ;-)
} catch(Exception $e) {
    /* ... */
}
于 2012-10-12T15:12:48.940 回答