Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Connect Codeigniter to Oracle 11g

Please help! i can't connect codeigniter to Oracle I am trying to connect Codeigniter to Oracle 11g, here are my settings

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;

Note: I added the C:\instantclient_11_2 to environment variable to PATH.

oracle port number:
oracle hostname: Home-pc
database name: orcl

Only when I run my CodeIgniter login code it shows this error message:

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

But I can connect to Oracle when I run a simple php code like:

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

Result: yahooooooooo!!!!!!!!!!

like image 872
zallexy Avatar asked Dec 23 '12 17:12

zallexy


2 Answers

In your config's database.php make the following changes

$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;
like image 105
Prakash Avatar answered Sep 18 '22 13:09

Prakash


change default to XE

$active_group = 'XE';
$active_record = TRUE;

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

$db['XE']['hostname'] = $tnsname;
$db['XE']['username'] = 'XXXXXX';
$db['XE']['password'] = 'XXXXX';
$db['XE']['database'] = '';
$db['XE']['dbdriver'] = 'oci8';
$db['XE']['dbprefix'] = '';
$db['XE']['pconnect'] = TRUE;
$db['XE']['db_debug'] = TRUE;
$db['XE']['cache_on'] = FALSE;
$db['XE']['cachedir'] = '';
$db['XE']['char_set'] = 'utf8';
$db['XE']['dbcollat'] = 'utf8_general_ci';
$db['XE']['swap_pre'] = '';
$db['XE']['autoinit'] = TRUE;
$db['XE']['stricton'] = FALSE;
like image 27
Belal Awwad Avatar answered Sep 21 '22 13:09

Belal Awwad