使用Codeigniter从sqlite db获取数据时出错

时间:2017-04-18 12:52:14

标签: php codeigniter sqlite

我连接到sqlite db并尝试从表中获取数据。

但它显示出一些错误,

致命错误:在第300行的D:\ xampp \ htdocs \ e-hadith \ system \ database \ drivers \ sqlite3 \ sqlite3_driver.php中的非对象上调用成员函数lastErrorCode() 遇到PHP错误

严重性:错误

消息:在非对象

上调用成员函数lastErrorCode()

文件名:sqlite3 / sqlite3_driver.php

行号:300

回溯:

下面是我的代码

{
         $this->db->select("*");
         $q=$this->db->get("chapter");
         $r=$q->result();
         echo "<pre>";print_r($r);exit;


        $this->load->view('welcome_message');
    }
$db['default'] = array(
    'dsn'   => '',
    'hostname' => '',
    'username' => '',
    'password' => '',
    'database' => 'sqlite:'.APPPATH.'/Database/data.db',
    'dbdriver' => 'sqlite3',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => FALSE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

任何人都可以建议我吗?

enter image description here

2 个答案:

答案 0 :(得分:0)

看起来数据库配置有一些错误。

可能出现的问题

  1. 数据库配置问题。
  2. 'database' => 'sqlite:'.APPPATH.'/Database/data.db',这是错误的。

    在CodeIgniter APPPATH中引用application目录。

    根据您的屏幕截图,您的sqlite数据库位于application目录之外。

    1. data.db文件移到application/database
    2. 更新配置'database' => APPPATH.'/database/data.db'
    3. 编辑application/config/autoload.php并加载数据库。
    4. 希望这能解决您的问题。

答案 1 :(得分:0)

首先尝试检查你的php.ini并取消注释

extension=php_pdo_sqlite.dll
extension=php_sqlite3.dll

并试试这个

// in the dsn put sqlite:your/path/to/Database
$db['default'] = array(
    'dsn'   => 'sqlite:application/Database/data.db',
    'hostname' => 'localhost',
    'username' => '',
    'password' => '',
    'database' => '',
    'dbdriver' => 'pdo',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);