无论何时我在我的模型中像这样查询我的数据库(sqlite)(我正在使用CodeIgniter,完整的代码如下):
当将查询更改为不存在的内容时,我会收到一个“正确”的错误,例如:
$this->db->select('post');
$query = $this->db->get('posts');
return $query->result_array();
I get the following error:
Fatal error: Call to a member function rowCount() on a non-object in /codeigniter/system/database/drivers/pdo/pdo_result.php on line 42
当将查询更改为不存在的内容时,我会收到一个“正确”的错误,例如:
A Database Error Occurred
Error Number: HY000
no such column: posst
SELECT posst FROM posts
Filename: /codeigniter/models/post.php
Line Number: 8
这让我相信数据库实际上是在工作的,但是有些东西我没有注意到。 我已经尝试重新创建了数据库。它只有1个表格和1列,但我就是无法获取任何数据。我还尝试使用不同的“管理员”程序来创建它,但是一直失败。我确保它是一个Sqlite 3数据库,而根据phpinfo,这也被Web服务器支持。 有人知道我哪里错了吗?
-------- 完整代码: models/post.php中的我的帖子模型
<?php
class Post extends CI_Model{
function get_posts(){
$this->db->select('posst');
$query = $this->db->get('posts');
return $query->result_array();
}
}
我在 controller/posts.php 文件中的控制器:
<?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>";
}
}
我的数据库配置在 database.php 文件中:
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'sqlite:/home/******/******/www/wtp3/codeigniter/db/wtp35.sqlite';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'pdo';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
database.php
文件中,尝试将 dbdriver 从pdo
更改为sqlite
。 - Ravi Dhoriya ツ2.1
还是2.1.1
? - Ravi Dhoriya ツ$query = $this->db->get('posts'); return $query->result_array();
- g_uint