2012-12-23 21 views
6

Proszę pomóc! Nie mogę połączyć CodeIgniter Oracle Próbuję połączyć CodeIgniter Oracle 11g, oto moje ustawieniaPołączyć Codeigniter z 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; 

Uwaga: Dodałem C: \ instantclient_11_2 do zmiennej środowiskowej PATH.

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

Dopiero gdy uruchomię mój CodeIgniter kodu logowania pokazuje ten komunikat o błędzie:

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 

Ale mogę połączyć się z Oracle po uruchomieniu prostego kodu php jak:

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

Wynik: yahooooooooo !!!!!!!!!!

+0

Próbowałeś pozostawiając nazwę hosta tak samo jak 'localhost' ie. bez ukośników? – dakdad

Odpowiedz

0

spróbować zrobić to zmienia zmienić nazwę hosta do http://localhost:1521:orcl podane są nazwa bazy danych jako orcl domyślnie orcl jest domyślna instancja id. spróbuj utworzyć nowego użytkownika lub bazę danych i zmień go w konfigurację database.

+0

Dzięki Abin, to może być dobre rozwiązanie, ale przykro, że nie miałem okazji go wypróbować. Odinstalowałem wersję Oracle Full, której używałem i zastąpiłem ją wersją ekspresową, działało to z moimi ustawieniami – zallexy

3

W database.php config jest wprowadzić następujące zmiany

$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; 
+1

Dzięki Prakash, Właściwie to mogło zadziałać. Rozwiązałem problem przez odinstalowanie pełnej wersji oracle i zastąpienie jej wersją ekspresową. Działa z tymi samymi ustawieniami – zallexy

0

Upewnij php_oci8_11g.dll rozszerzenie jest załadowany php.ini

+0

Tak, rozszerzenie jest załadowane. – zallexy

1

zmiany domyślny do 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; 
Powiązane problemy