sqlite3和codeigniter的致命错误

时间:2016-02-25 16:11:10

标签: php database codeigniter sqlite

这是我第一次尝试使用Codeigniter和SQLite3创建网站。 我没有使用mysql的问题,但SQLite抛出了我不理解也不知道如何解决的致命错误。我尝试在线搜索并在堆栈中浏览了很多线程,但没有人能够得到答案或与我分享相同的错误。

  

致命错误:在C:\ xampp \ htdocs \ elcomass \ system \ database \ drivers \ sqlite3 \ sqlite3_driver.php中调用boolean上的成员函数escapeString()   第178行遇到PHP错误

     

严重性:错误

     

消息:在布尔值

上调用成员函数escapeString()      

文件名:sqlite3 / sqlite3_driver.php

     

行号:178

     

回溯:

这是我的数据库配置:

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => '',
    'password' => '',
    'database' => './elcomass/baza/general_info.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
);

我尝试将dbdriver更改为sqlite但是它会抛出调用未定义函数sqlite_open()错误。在尝试使用codeigniter的 $ this-> db-> escape 之前,我还尝试了在检查数据库之前转义字符串,但即使致命错误是关于转义字符串也没有做任何事情

我用于登录的控制器。

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

class Form_controller extends CI_Controller {
    function __construct(){
        parent::__construct();
        $this->load->helper('url');
        $this->load->helper('form');
        $this->load->model('user_login');
    }

    function index()
    {
        $this->load->helper(array('form', 'url'));
        $this->load->library('form_validation');

        $this->form_validation->set_rules('username', 'Username', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required|callback_check_db');

        if ($this->form_validation->run() == TRUE) 
        {   
            $this->session->set_userdata('logged_in', TRUE);
            $this->session->set_userdata('user_stuff', $try_login);
            redirect('/members_area');
        }
        else
        {
            $this->load->view('header');
            $this->load->view('login_form');
            $this->load->view('footer');
        }

    }

    function check_db()
    {
        extract($_POST);
        $try_login = $this->user_login->login($username, $password);

        if(!$try_login)
        {
            $this->form_validation->set_message('check_db', 'Invalid username or password');
            return FALSE;
        }
        else
        {
            $this->session->set_userdata('logged_in', TRUE);
            $this->session->set_userdata('user_stuff', $try_login);
            redirect('/members_area');
        }

    }

/*  public function new_post()
    {
        $formdata = $this->input->post();
        $postname = $this->input->post('postname');
        $postdesc = $this->input->post('postdesc');
        $postdate = date('Y-m-d');
        echo $formdata;
    }*/
}
?>

模型

<?php

class User_login extends CI_Model {

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

        function login($username, $password)
        {
            $this->db->select('username, password');            
            $this->db->from('login');
            $this->db->where('username', $this->db->escape($username));
            $this->db->where('password', $this->db->escape($password));
            $this->db->limit(1);

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

            if ($query->num_rows() == 1) {
                return $query->result_array();
            }
            else
            {
                return false;
            }
        }
    }

?>

0 个答案:

没有答案