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_arrayCI クエリ オブジェクトではなく、リソースが必要です。

結果のフェッチに関するドキュメントを確認してください。

于 2012-10-05T23:19:54.187 に答える
1

大量のデータ (行) を処理する場合、メモリを節約するために mysql_fetch_array のようなネイティブ php mysql 関数を使用したい場合があります (最適なメモリ節約のためには、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 に答える