【问题标题】:Codeigniter returns empty arrayCodeigniter 返回空数组
【发布时间】:2014-02-28 20:09:37
【问题描述】:

我对 codeigniter 非常陌生,并尝试编写一个简单的博客应用程序:

控制器:posts.php

class Post extends CI_Model {

    function get_posts($num=20, $start=0) {
       $this->db->select()->from('posts')->where('active',1)->order_by('date_added','dec')->limit(0,20);
        $query = $this->db->get('posts');
        return $query->result_array();

        }

}

型号:post.php

class Posts extends CI_Controller {
    function index() {
        $this->load->model('post');
        $data['posts'] = $this->post->get_posts();
        echo"<pre>";print_r($data['posts']);echo"</pre>";
    }
}

我已经在数据库中填充了帖子表。但是,当我尝试获得结果时,我得到了这个:

Array
(
)

mysql> 描述帖子;

+------------+--------------+------+-----+-------------------+-----------------------------+
| Field      | Type         | Null | Key | Default           | Extra                       |
+------------+--------------+------+-----+-------------------+-----------------------------+
| postID     | int(10)      | NO   | PRI | NULL              | auto_increment              |
| title      | varchar(255) | NO   |     | NULL              |                             |
| post       | text         | NO   |     | NULL              |                             |
| date_added | timestamp    | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| userID     | int(4)       | NO   |     | NULL              |                             |
| active     | tinyint(1)   | NO   |     | NULL              |                             |
| slug       | varchar(255) | NO   |     | NULL              |                             |
+------------+--------------+------+-----+-------------------+------------------

这段代码有什么问题,我该如何解决?

【问题讨论】:

    标签: codeigniter-2


    【解决方案1】:

    因为您的查询出错了,因为您已经有了-&gt;from('posts'),所以您在 get 中不再需要表名

    改变

    $query = $this->db->get('posts');
    

    $query = $this->db->get();
    

    还有

    ->order_by('date_added','desc')
    

    【讨论】:

    • 您应该能够在 $this->db->get() 之后使用 echo $this-&gt;db-&gt;last_query() 查看您的最后一个查询,以确保您的查询正确
    • 用 db->get() 替换 db->get('posts') 并没有解决问题。但是当我注释掉 //->order_by('date_added','dec')->limit(0,20);数组内容出现了。任何想法为什么会这样?
    • 你能检查列名date_added 是否正确,我检查了查询及其对我的工作。在 get(); 之后你在 echo $this-&gt;db-&gt;last_query() 上得到了什么;
    • 我知道你的问题是-&gt;order_by('date_added','desc') 不是-->order_by('date_added','dec')`
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    相关资源
    最近更新 更多