PostgreSQL和Codeigniter Sessions问题

时间:2016-09-23 11:18:56

标签: php postgresql codeigniter

我正在尝试将用户数据存储到PgSQL中的数据库中,并将Codeigniter作为框架。

现在我创建了一个表ci_sessions:

  CREATE TABLE IF NOT EXISTS ci_sessions (
  session_id varchar(40) NOT NULL DEFAULT '0',
  ip_address varchar(45) NOT NULL DEFAULT '0',
  user_agent varchar(120) NOT NULL,
  last_activity int check (last_activity > 0) NOT NULL DEFAULT '0',
  user_data text NOT NULL,
  PRIMARY KEY (session_id)
) ;

CREATE INDEX last_activity_idx ON ci_sessions (last_activity);

在我的config.php中,这些是我的参数:

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

在mysql中,这些足以将userdata存储到数据库中。

但对于 PgSql ,我收到了很多错误:

  • session_id不知道db驱动程序要求我将其更改为id
  • user_agent也是未知的,所以我不得不将其从数据库中删除
  • last_activity,也是未知的
  • 同样对于驱动程序,user_data应该只是数据字段。

我必须做很多改动才能正常工作,但是当我要求它没有存储有关用户数据的信息时,例如浏览器,用户代理等。

我的错误看起来像这样:

Severity: Warning
     

消息:pg_query():查询失败:错误:列"数据"不存在   第1行:SELECT"数据" ^

     

文件名:postgre / postgre_driver.php

     

行号:242

     

回溯:

     

文件:C:\ wamp \ www \ project \ application \ core \ MY_Controller.php行:13   功能:__construct

     

文件:C:\ wamp \ www \ project \ application \ libraries \ Admin_Controller.php   行:10功能:__construct

     

文件:C:\ wamp \ www \ project \ application \ controllers \ admin \ Dashboard.php   行:11功能:__construct

     

文件:C:\ wamp \ www \ project \ index.php行:316函数:require_once

1 个答案:

答案 0 :(得分:0)

CREATE TABLE "ci_sessions" (
    "id" varchar(128) 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");

根据在线docs,这是您需要的表。