这是我第一次尝试使用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;
}
}
}
?>