Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z połączeniem z bazą danych oracle - oci
Tomekmar999
post 13.11.2012, 09:06:49
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.11.2012

Ostrzeżenie: (0%)
-----


Witam

Tworzę strone w html i chce połączyć się z bazą oracle. Używam do tego oci, poniżej kod:
$host = "IP";
$port=1521;
$nazwa_uslugi = "XE"; // dbServiceName
$uzytkownik = "elin";
$haslo = "maleDUZE9";
$deskryptor = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST=$host)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=XE)))";
echo "AAA2 deskryptor = $deskryptor ";

$polaczenie = oci_connect(elin1,maleDUZE9,$deskryptor, 'AL32UTF8');
echo "AAA3";

if(!$polaczenie)
{
$err = oci_error();
trigger_error('Nie mozna nawiazac polaczenia z baza danych: '. $err['message'], E_USER_ERROR);
echo "AAA4";
}
echo "AAA5";

Na stronie wyświetla się wszystko do echo "AAA2 deskryptor = $deskryptor ";
Potem nic się nie dzieje, nie ma żadnej informacji o błędzie.

W php.ini próbowałem z obydwoma opcjami (podobno jedna tylko może być aktywna):
extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client
i żadnych zmian.

Proszę o pomoc.
Go to the top of the page
+Quote Post
nospor
post 13.11.2012, 09:55:49
Post #2





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Nie masz zainstalowanego klienta oracla na kompie.
Samo odkomentowanie extension=php_oci8.dll nic nie da, dopóki nie zainstalujesz klienta oracla


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tomekmar999
post 13.11.2012, 10:14:21
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.11.2012

Ostrzeżenie: (0%)
-----


Klient jest zainstalowany, mogę połączyc się z bazą oracle za pomocą komendy:
sqlplus user/passwd@xe
Zainstalowany klient to : Oracle_OraClient10g
Baza danych to : Oracle Database 11g Express edition
Klient działa ponieważ korzysta z niego pewien program zainstalowany na moim serwerze.

Proszę o pomoc. Co można by coś jeszcze zmienic?
Go to the top of the page
+Quote Post
nospor
post 13.11.2012, 10:15:30
Post #4





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




wykonaj

I obadaj co dokładnie masz w php poinstalowane


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tomekmar999
post 13.11.2012, 10:24:36
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.11.2012

Ostrzeżenie: (0%)
-----


wykonalem. Jesli chodzi o oci jest tylko(zakładka Configure Command ):
cscript /nologo configure.js "--enable-snapshot-build" "--without-dblib" "--without-pdo-dblib" "--without-pdo-mssql" "--with-pdo-oci=C:\php-sdk\php54dev\vc9\x64\deps\instantclient_10_2\sdk,shared" "--with-oci8=C:\php-sdk\php54dev\vc9\x64\deps\instantclient_10_2\sdk,shared" "--with-oci8-11g=C:\php-sdk\php54dev\vc9\x64\deps\instantclient_11_2\sdk,shared" "--disable-debug-pack" "--disable-static-analyze

zmienna srodowiskowa wykorzystywana do polaczenia z baza jest rowniez widoczna:
Provider=OraOLEDB.Oracle.1;Password=maleDUZE9;Persist Security Info=True;User ID=eli;Data Source=XE

gdzie szukac dokladniej?
Go to the top of the page
+Quote Post
nospor
post 13.11.2012, 10:26:54
Post #6





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




To jest windows czy linux?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tomekmar999
post 13.11.2012, 11:01:12
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.11.2012

Ostrzeżenie: (0%)
-----


windows server 2008 x64

Odpalenie funkcji :
if(!function_exists('oci_connect')) die('Oracle Not Installed');
daje rezultat:
Oracle Not Installed

Gdzie może być przyczyna? Php nie widzi oci? czy nie mozę sie połączyć z bazą?

Prośba o pomoc.
Go to the top of the page
+Quote Post
nospor
post 13.11.2012, 11:17:21
Post #8





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




php nie widzi oci. Już ci to pisałem smile.gif
Nie pamiętam jak na windzie się to instaluje ale:
http://pl1.php.net/manual/pl/oci8.installation.php
Cytat
Installing OCI8 on Windows

On Windows, uncomment the php.ini line extension=php_oci8.dll when using Oracle 10gR2 client libraries. Uncomment extension=php_oci8_11g.dll when using Oracle 11g client libraries. These two DLLs contain equivalent functionality and only one may be enabled at a time. Make sure extension_dir is set to the directory containing the PHP extension DLLs.

If using Instant Client, set the system PATH environment variable to the Oracle library directory.

Czy te pliki .dll wrzuciłeś to właściwego katalogu? Zazwyczaj z tego co kojarze to z tym na windzie był zawsze problem


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tomekmar999
post 13.11.2012, 12:05:17
Post #9





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.11.2012

Ostrzeżenie: (0%)
-----


tak to tez testowalem. Php.ini jest wrzucony do katalogu c:\windows oraz dwie ponizsze linijki:

extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client

Powyzsze pliki sa w katalogu : c:\php\ext

i tak jak zgodnie z instrukcja jedna tylko moze byc odkomentowana - ale bez rezultatu. Przy kazdej probie byl robiony restart iis.
Sciezka extension_dir = "c:\php\ext" jest ustawiona w c:\w c:\windows\php.ini.

Wszystko wydaje sie byc ok ale php ciagle nie widzi oci. Co może być jeszcze przyczyna?

Ten post edytował Tomekmar999 13.11.2012, 12:06:57
Go to the top of the page
+Quote Post
nospor
post 13.11.2012, 12:21:59
Post #10





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




No ale to pliki .dll powinny być w katalogu c:/windows lub jakoś tak smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tomekmar999
post 13.11.2012, 13:34:49
Post #11





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.11.2012

Ostrzeżenie: (0%)
-----


gdzie dokladnie?
Przekopiowalem cala katalog ext do katalogu windows oraz zmieniajac plik php.ini tak jak ponizej i tez nic.

Probowalem tak:
1. extension_dir = "c:\php\ext
2.extension_dir = "c:\windows\ext"
i tez nic.

Wymiekam juz naprawde, nie wiem gdzie jest problem. Masz jakies pomysly?

Ten post edytował Tomekmar999 13.11.2012, 13:36:31
Go to the top of the page
+Quote Post
nospor
post 13.11.2012, 15:12:10
Post #12





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Nie miałeś kopiować katalogu ext. miałeś tylko .dll oracla skopiować do katalogu c:/windows... nie: c:/windows/ext/ a poprostu c:/windows. I nie mialeś już nic zmieniac w php.ini
Tyle pamiętam z problemów jakie ludzie kiedyś miewali.

ps: restartujesz apache'a po zmianach?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tomekmar999
post 13.11.2012, 15:49:52
Post #13





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.11.2012

Ostrzeżenie: (0%)
-----


przekopiowalem:
php_oci8.dll
oraz
php_oci8_11g.dll
do katalogu windowsa.

Po kazdej zmianie robie restart iis (iisreset).

I nadal nic. Co musi byc w php.ini jesli chodzi o extension_dir ?

Go to the top of the page
+Quote Post
asz
post 23.09.2013, 19:10:31
Post #14





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 22.08.2007

Ostrzeżenie: (0%)
-----


Cytat(Tomekmar999 @ 13.11.2012, 16:49:52 ) *
przekopiowalem:
php_oci8.dll
oraz
php_oci8_11g.dll
do katalogu windowsa.

Po kazdej zmianie robie restart iis (iisreset).

I nadal nic. Co musi byc w php.ini jesli chodzi o extension_dir ?


Wystarczy, że skopiujesz plik oci.dll do katalogu C:\Windows (mam na myśli oci.dll z "klienta" a nie z php! ==> pobrać możesz go z tej strony http://www.oracle.com/technetwork/database...dex-097480.html [najpierw wybierz 1. link tj. Instant Client for Microsoft Windows (32-bit) a potem instantclient-basiclite-nt-12.1.0.1.0.zip (28,704,352 bytes) (cksum - 3256522486)]).

Po rozpakowaniu zip-a skopiuj z niego oci.dll do C:\Windows, usuń ; (średnik) przed extension=php_oci8.dll w C:\Windows\php.ini i zrób restart serwera.

Oczywiście mam na myśli bazę Oracle 10g XE (z 11g XE jeszcze nie kombinowałem... choć tu chyba nic się nie zmienia...) ;-)

P.S. W linijce extension_dir = ja mam ścieżkę do "php\ext " (w moim przypadku jest to "G:\php\ext"), czyli extension_dir = "G:\php\ext".

Ten post edytował asz 23.09.2013, 19:17:29
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 09:27