Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Połączenie PHP z Oraclem, Szukam
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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


Ten post edytował TomASS 26.04.2011, 21:22:04
Go to the top of the page
+Quote Post
krowal
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Sprawdź w katalogu w którym masz zainstalowanego PHP => /ext/php_oci8.dll
Go to the top of the page
+Quote Post
TomASS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


oczywiście jest - tylko nie działa, na forach polecają podmianę na inny, niestety nie podają na jaki (IMG:style_emoticons/default/sad.gif)
a może to inny powód?
Go to the top of the page
+Quote Post
IceManSpy
post
Post #4





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


A połączenie z serwerem działa? Np poprzez SQL Plus.
Go to the top of the page
+Quote Post
TomASS
post
Post #5





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Działą = min. przez SQL Developera
Go to the top of the page
+Quote Post
Rafalsky.com
post
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 30.09.2010
Skąd: Olsztyn

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


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.
Go to the top of the page
+Quote Post
krowal
post
Post #7





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Nie wiem czy próbowałeś, ale mi chodziło o skopiowanie tych plików z tego katalogu /ext do katalogu windowsa.
Go to the top of the page
+Quote Post
TomASS
post
Post #8





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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?

Ten post edytował TomASS 27.04.2011, 23:06:34
Go to the top of the page
+Quote Post
IceManSpy
post
Post #9





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


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.
Go to the top of the page
+Quote Post
TomASS
post
Post #10





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


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?
Go to the top of the page
+Quote Post
mortus
post
Post #11





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 19:44