0

モデルに対してクエリを実行しようとしましたが、エラーが発生しました。クエリをコントローラーに入れると、正常に動作します。これは私のコントローラ(Home.php)です:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Home extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->helper('form');
        $this->load->helper('asset');
        $this->load->database();
        $this->load->library('table');
    }

    public function index()
    {   
        $this->load->model('News');
        $resultNews = $this->News->queryNews();
        $data['resultNews'] = $resultNews;
        $this->load->view('front/index',$data);

    }
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

これは私のモデル(News.php)です:

<?php
if( !defined('BASEPATH')) exit('No direct script access allowed');
class News extends CI_Model {

    function __construct(){
        parent::__construct();
        $this->load->database();
    }

    function queryNews(){
        $this->db->query("SELECT * FROM  `news` WHERE news_show_date >= CURDATE() ORDER BY news_show_date DESC LIMIT 0 , 2");
        $query = $this->db->get();
        return  $query;

    }   
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */
?>

そして、それはエラーを吐き出しています:

A Database Error Occurred
Error Number: 1096
No tables used
SELECT *
Filename: C:\AppServ\www\hijet\system\database\DB_driver.php
Line Number: 330

私は何か間違ったことをしていて、それを見逃していますか?

4

1 に答える 1

3

$this->db->queryで十分です。削除する必要があるため$query = $this->db->get(); 、コードは次のようになります

    function queryNews(){
    $query = $this->db->query("SELECT * FROM  `news` WHERE news_show_date >= CURDATE() ORDER BY news_show_date DESC LIMIT 0 , 2");
    return  $query;

}

編集:結果を取得したい場合は$query->result()、オブジェクトの配列を返すか、配列を返すを使用する必要があります$query->result_array()。詳細はこちら - http://ellislab.com/codeigniter/user-guide/database/results.html

于 2013-01-19T19:13:44.427 に答える