Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Połączenie PHP z Oraclem
Forum PHP.pl > Forum > PHP
TomASS
Mam zainstalowany pakiet WAMP. Chciałbym skonfigurować połączenie z bazą Oraclową.
Ściągam komentarz z php_oci8.dll w php.ini, resetuję serwer

i niestety php_info nie wyświetla mi, że jest zainstalowane rozszerzenie php_oci sad.gif
Wywołując funkcję:
  1. $conn = oci_connect('XXX', 'XXX', 'IP');
  2. if (!$conn) {
  3. $e = oci_error();
  4. trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
  5. }

Dostaję:
Cytat
Fatal error: Call to undefined function oci_connect() in C:\wamp\www\xxx\info.php on line 16


Czytałem w sieci, że trzeba podmienić plik php_oci8.dll ale niestety nie wiem skąd ściągnąć działający sad.gif
Czy może ktoś wie skąd ściągnąć ww. plik lub może zna inny powód dlaczego nie działa mi połączenie sad.gif

Oto kawałek php.ini
Cytat
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll
krowal
Sprawdź w katalogu w którym masz zainstalowanego PHP => /ext/php_oci8.dll
TomASS
oczywiście jest - tylko nie działa, na forach polecają podmianę na inny, niestety nie podają na jaki sad.gif
a może to inny powód?
IceManSpy
A połączenie z serwerem działa? Np poprzez SQL Plus.
TomASS
Działą = min. przez SQL Developera
Rafalsky.com
Pracowałem z Oracle 8i i problemów większych nie miałem. Weź zobacz czy w kliencie Oracle są DLki dla oci. Jeżeli tak to skopiuj je do rozszerzeń PHP i dołącz w PHP.INI.
Z jaką wersją bazy Oracle chcesz się połączyć?

Wiem, że przy połączeniu z bazą danych konieczne do IP jest dołączenie '/XE' - bynajmniej jeżeli chodzi o Oracle 8i.
  1.  
  2. if (function_exists('oci_connect'))
  3. {
  4. $c = oci_connect('user','pass','localhost/XE');
  5. if ($c)
  6. {
  7. $return.='<span class="valid">OK</span>';
  8. oci_close($c);
  9. }
  10. else
  11. {
  12. $error = oci_error();
  13. $return.='<span class="unvalid"><strong>FAIL: </strong>' .$error['message'] .'</span>';
  14.  
  15. }
  16. }
  17. else
  18. {
  19. $return.='<span class="unvalid">Brak modułu</span>';
  20. }


I jeszcze jedno: Jesteś pewny, że edytowałeś właściwy plik php.ini? Wiem, że głupie pytanie ale sam kiedyś męczyłem się z problemem kupę czasu, by stwierdzić, że edytuję nie ten plik z którego korzysta serwer.
krowal
Nie wiem czy próbowałeś, ale mi chodziło o skopiowanie tych plików z tego katalogu /ext do katalogu windowsa.
TomASS
Cytat
Weź zobacz czy w kliencie Oracle są DLki dla oci. Jeżeli tak to skopiuj je do rozszerzeń PHP i dołącz w PHP.INI.

Niestety nie ma w SQL Developerze żadnego pliku *ocu*.dll sad.gif Możesz mi jakoś podesłać?
Cytat
Z jaką wersją bazy Oracle chcesz się połączyć?

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
Cytat
Jesteś pewny, że edytowałeś właściwy plik php.ini?

Jeste pewny sad.gif
Cytat
Nie wiem czy próbowałeś, ale mi chodziło o skopiowanie tych plików z tego katalogu /ext do katalogu windowsa.

Przekopiowałem zawartość CAŁEGO katalogu /ext do windows oraz windows/system32 i nic sad.gif

Może winą jest to, ze nie mam zainstalowanego ORACLA?
Na razie, przed przystąpieniem prac na serwerze, sam chciałem przetestować i przećwiczyć na środowisku testowym (gdzie nie ma oracla), ale niby czemu serwer www/php musiałby stać na tym samym sprzęcie co Oracle?
IceManSpy
Jak spróbujesz postawić Oracle na localhost'cie i uda Ci się połączyć, tzn, że skrypt jest ok, a problem tkwi w połączeniu. A jeśli na localhost nie będzie działać, tzn, że coś w konfiguracji masz źle.
TomASS
Cytat(IceManSpy @ 28.04.2011, 00:50:51 ) *
Jak spróbujesz postawić Oracle na localhost'cie i uda Ci się połączyć, tzn, że skrypt jest ok, a problem tkwi w połączeniu.

Jak może coś źle działać w połączeniu, skoro wywala mi błąd "Call to undefined function oci_connect()" i nie dochodzi do połczenia

Cytat
A jeśli na localhost nie będzie działać, tzn, że coś w konfiguracji masz źle.

Na pewno coś z konfiguracją - tylko co?
mortus
Do połączenia ze zdalnym serwerem baz danych Oracle potrzebujesz dodatkowo Oracle Instant Client. W tym artykule problem został opisany dość szczegółowo. Odpowiednią bibliotekę oci możesz pobrać z zasobów PECLa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.