【问题标题】:Fatal error with sqlite3 and codeignitersqlite3 和 codeigniter 的致命错误
【发布时间】:2016-06-08 12:52:47
【问题描述】:

这是我第一次尝试使用 Codeigniter 和 SQLite3 制作网站。 我使用 mysql 没有问题,但 SQLite 抛出了我不理解也不知道如何解决的致命错误。我尝试在线搜索并浏览堆栈上的许多线程,但没有一个答案或与我的错误相同。

致命错误:调用 C:\xampp\htdocs\elcomass\system\database\drivers\sqlite3\sqlite3_driver.php 中布尔值的成员函数 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,但随后会引发 Call to undefined function sqlite_open() 错误。在我自己检查数据库之前,我还尝试使用 codeigniter 的 $this->db->e​​scape 转义字符串,但即使致命错误是关于转义字符串,它也无济于事。

我用于登录的控制器。

    <?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;
            }
        }
    }

?>

【问题讨论】:

    标签: php database codeigniter sqlite


    【解决方案1】:

    有一个类似的论坛:php fatal error: class sqlite3 is not found in

    我遇到了同样的问题,解决方法如下:

    sudo apt-get install php7.3-sqlite
    

    7.3 是我目前使用的 PHP 版本。

    要了解您的版本:

    php -v
    

    完成重启服务器。就我而言,apache:

    sudo service apache2 restart
    

    【讨论】:

      猜你喜欢
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      • 2011-11-14
      • 1970-01-01
      • 2013-11-03
      • 2021-02-03
      • 2013-09-20
      相关资源
      最近更新 更多