将Codeigniter连接到Oracle 11g

zal*_*exy 6 codeigniter connect oracle11g

请帮忙!我无法将codeigniter连接到Oracle我正在尝试将Codeigniter连接到Oracle 11g,这是我的设置

Settings in database.php:

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = "//localhost/";
$db['default']['username'] = 'xxxxxxx';
$db['default']['password'] = 'xxxxxxx';
$db['default']['database'] = 'orcl';
$db['default']['dbdriver'] = 'oci8';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
Run Code Online (Sandbox Code Playgroud)

注意:我将C:\ instantclient_11_2添加到PATH的环境变量中.

oracle port number:
oracle hostname: Home-pc
database name: orcl
Run Code Online (Sandbox Code Playgroud)

只有当我运行我的CodeIgniter登录代码时,它才会显示以下错误消息:

A Database Error Occurred

Unable to connect to your database server using the provided settings.

Filename: D:\xampp\htdocs\ci\system\database\DB_driver.php

Line Number: 124
Run Code Online (Sandbox Code Playgroud)

但是当我运行一个简单的PHP代码时,我可以连接到Oracle:

<?php
$conn = oci_connect("xxxxxx", "xxxxxx","");
if (!$conn) { 
   echo "Not connected!";
}
else
  echo "yahooooooooo!!!!!!!!!!";
?>
Run Code Online (Sandbox Code Playgroud)

结果:yahooooooooo !!!!!!!!!!

小智 5

在您的配置的 database.php 中进行以下更改

$active_group = 'default';
$active_record = TRUE;

$tnsname = '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))';

$db['default']['hostname'] = $tnsname;
$db['default']['username'] = 'XXXXXX';
$db['default']['password'] = 'XXXXX';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'oci8';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
Run Code Online (Sandbox Code Playgroud)

  • 谢谢普拉卡什,实际上这可能有效。我通过卸载oracle完整版并用express版本替换它来解决问题。它使用相同的设置 (2认同)

Abi*_*sia 0

尝试进行此更改,将主机名更改为http://localhost:1521:orcl 给定的数据库名称orcl,默认情况下orcl是默认实例 ID。尝试创建新用户或数据库并将其更改为配置database