导读:ThinkPHP 3.2.2 用DSN方式连接不上Oracle 11G问题系统环境: Windows 2003 R2Server: Microsoft-IIS 6.0PHP: 5.3.28Oracle Server...
ThinkPHP 3.2.2 用DSN方式连接不上Oracle 11G问题
系统环境: Windows 2003 R2
Server: Microsoft-IIS 6.0
PHP: 5.3.28
Oracle Server: 11G
Oracle Client: instantclient 11.2
ThinkPHP:3.2.2
File:Oracle.class.php
Line:50
Desc:连接Oracle时没有加入主机名和端口号
$this->linkID[$linkNum] = $conn($config['username'], $config['password'],$config['database']);//modify by wyfeng at 2008.12.19
修改为:
$this->linkID[$linkNum] = $conn($config['username'], $config['password'],$config['hostname'].':'.$config['hostport'].'/'.$config['database']);
Line:214
Desc:$val键名大小写问题造成无法给$info赋值
if($result) {
foreach ($result as $key => $val) {
$info[strtolower($val['column_name'])] = array(
'name' => strtolower($val['column_name']),
'type' => strtolower($val['data_type']),
'notnull' => $val['notnull'],
'default' => $val['data_default'],
'primary' => $val['pk'],
'autoinc' => $val['pk'],
);
}
}
修改为:
if($result) {
foreach ($result as $key => $val) {
$info[$val['COLUMN_NAME']] = array(
'name' => $val['COLUMN_NAME'],
'type' => $val['DATA_TYPE'],
'notnull' => $val['NOTNULL'],
'default' => $val['DATA_DEFAULT'],
'primary' => $val['PK'],
'autoinc' => $val['PK'],
);
}
}
当前这种修改方式感觉有欠缺,由于项目时间紧迫,没有做其它测试,请官方重视解决一下,感谢你们的辛勤劳动,提供这么好用的框架,谢谢
thinkphp官方回答:
使用oracle驱动的话 可以配置DB_CASE_LOWER参数 这样后面的问题就无需修改了。