Codeigniter error session DB

前端 未结 5 1630
南旧
南旧 2020-12-15 06:23

After upgrade Codeigniter to version 3.0 I get error DB after trying call any controller:

Error Number: 1064

You have an error in your SQL syntax; check the         


        
相关标签:
5条回答
  • 2020-12-15 07:19

    Using Codeigniter Version 3

    Edit the Config File and set session driver to "database" and sess_save_path to table name

    $config['sess_driver'] = 'database';//enable session with db
    $config['sess_cookie_name'] = 'ci_session';
    $config['sess_expiration'] = 7200;
    $config['sess_save_path'] = 'ci_sessions';//database table name
    $config['sess_match_ip'] = FALSE;
    $config['sess_time_to_update'] = 300;
    $config['sess_regenerate_destroy'] = FALSE;
    

    For MySql

    CREATE TABLE IF NOT EXISTS `ci_sessions` (
            `id` varchar(40) NOT NULL,
            `ip_address` varchar(45) NOT NULL,
            `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
            `data` blob NOT NULL,
            KEY `ci_sessions_timestamp` (`timestamp`)
    );
    

    For PostgreSQL:

        CREATE TABLE "ci_sessions" (
                "id" varchar(40) NOT NULL,
                "ip_address" varchar(45) NOT NULL,
                "timestamp" bigint DEFAULT 0 NOT NULL,
                "data" text DEFAULT '' NOT NULL
        );
    
    CREATE INDEX "ci_sessions_timestamp" ON "ci_sessions" ("timestamp");
    

    Official Codeigniter Documentation for Session database driver

    0 讨论(0)
  • 2020-12-15 07:19

    SELECT 'data' FROM TABLE_NAME WHERE 'id' = 'd1d384b0ceed0bd72fa210337acc666aab1a04e5'

    you are missing the tablename plus your code include special characters.

    0 讨论(0)
  • 2020-12-15 07:24

    I use the CI 3 and just alter:

    $config['sess_save_path']           = 'ci_sessions';
    

    Works.. =)

    0 讨论(0)
  • 2020-12-15 07:27

    I had this same problem and it took me a while to find the solution. On the surface, the instructions tell you to just load the session driver and everything is cool, but if you look down in the Database Driver section of the CodeIgniter documentation, you find that you need to configure the $config[‘sess_save_path’] variable in your config.php file. For example:

     $config[‘sess_save_path’] = ‘ci_sessions’
    

    http://www.codeigniter.com/userguide3/libraries/sessions.html#initializing-a-session

    Of course, you have to have the ci_sessions table set up in your database as well, but this solved the missing table name for me.

    0 讨论(0)
  • 2020-12-15 07:30

    With codeigniter 3.0 :

    In config file :

    $config['sess_driver'] = 'database';
    $config['sess_save_path'] = 'ci_sessions';
    

    And in your MySQL database :

    CREATE TABLE IF NOT EXISTS `ci_sessions` (
        `id` varchar(40) NOT NULL,
        `ip_address` varchar(45) NOT NULL,
        `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
        `data` blob NOT NULL,
        PRIMARY KEY (id),
        KEY `ci_sessions_timestamp` (`timestamp`));
    

    The name of the fields is different from the version 2.0

    0 讨论(0)
提交回复
热议问题