【问题标题】:PostgreSQL and Codeigniter Sessions issuesPostgreSQL 和 Codeigniter 会话问题
【发布时间】:2016-09-23 11:18:56
【问题描述】:

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

现在我创建了一个表 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 中,这些足以将用户数据存储到数据库中。

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

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

我必须对其进行许多更改才能使其正常工作,但当我按照它的要求进行操作时,它并没有存储有关用户数据的信息,例如浏览器、用户代理等。

我的错误如下所示:

Severity: Warning

消息:pg_query():查询失败:错误:列“数据”不存在 第 1 行:选择“数据”^

文件名:postgre/postgre_driver.php

行号:242

回溯:

文件:C:\wamp\www\project\application\core\MY_Controller.php 行:13 函数:__构造

文件: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

【问题讨论】:

  • 您确定会话表创建正确吗?请参阅此文档codeigniter.com/user_guide/libraries/…。您可以看到 mysql 和 posgresql 的会话表的表架构。
  • 是的,也许我对 postgres 使用了相同的 mysql 表,这对我造成了错误

标签: php postgresql codeigniter


【解决方案1】:
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这是您需要的表。

【讨论】:

    猜你喜欢
    • 2012-02-10
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 2021-11-09
    相关资源
    最近更新 更多