Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter Oracle和CI_会话_Php_Sql_Codeigniter_Session_Oracle10g - Fatal编程技术网

Php Codeigniter Oracle和CI_会话

Php Codeigniter Oracle和CI_会话,php,sql,codeigniter,session,oracle10g,Php,Sql,Codeigniter,Session,Oracle10g,所以我不得不做一些修改,让Oracle使用CI_会话。首先,我必须将配置中的表更新为全大写。其次,我扩展了会话库类并重写了create_Session方法,以便它使用所有大写的行名称 然而,在插入时,我仍然得到一个错误。奇怪的是,当我在pl/sqldeveloper中的错误中运行sql时,它可以正常工作。行插入没有问题 以下是sql: INSERT INTO "CI_SESSIONS" ("SESSION_ID", "IP_ADDRESS", "USER_AGENT", "LAST_ACTIVI

所以我不得不做一些修改,让Oracle使用CI_会话。首先,我必须将配置中的表更新为全大写。其次,我扩展了会话库类并重写了create_Session方法,以便它使用所有大写的行名称

然而,在插入时,我仍然得到一个错误。奇怪的是,当我在pl/sqldeveloper中的错误中运行sql时,它可以正常工作。行插入没有问题

以下是sql:

INSERT INTO "CI_SESSIONS" ("SESSION_ID", "IP_ADDRESS", "USER_AGENT", "LAST_ACTIVITY", "USER_DATA") VALUES ('9df2c8be0e378bbfdc82a2808c1b3994', '172.16.1.86', 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36', 1395328370, '')
我不知道下一步该怎么办,因为它在我这边起作用,但在前端仍然出错

完全错误:

A Database Error Occurred

Error Number:

INSERT INTO "CI_SESSIONS" ("SESSION_ID", "IP_ADDRESS", "USER_AGENT", "LAST_ACTIVITY", "USER_DATA") VALUES ('9df2c8be0e378bbfdc82a2808c1b3994', '172.16.1.86', 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36', 1395328370, '')

Filename: /home/bgarrison/public_html/libraries/MY_Session.php

Line Number: 34

我目前正在使用Oracle 10g enterprise

更改
ci_会话
表的方案,以便
用户_数据
不受
非空
约束

故障在于Oracle在某些情况下对待
NULL
'
的方式相同

来自的
ci_会话
表的示例架构

CREATE TABLE IF NOT EXISTS`ci_sessions`(
会话id varchar(40)默认值“0”不为空,
ip_地址varchar(45)默认值“0”不为空,
用户\代理varchar(120)不为空,
last_activity int(10)未签名默认值0不为空,
用户_数据文本不为空,
主键(会话id),
键'last\u activity\u idx'('last\u activity`)
);
用户数据
施加
非空
约束

在INSERT SQL语句中,最后一个值(对于
user\u data
)是
'
,在本例中,Oracle将其视为与
NULL
相同的值,这打破了
非NULL
约束。要解决此问题,您需要更改
ci\u会话
表的方案,以便
user\u data
不受此约束