Problem z połączeniem z bazą danych oracle - oci |
Problem z połączeniem z bazą danych oracle - oci |
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. |
|
|
13.11.2012, 09:55:49
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 483 Pomógł: 6303 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 |
|
|
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? |
|
|
13.11.2012, 10:15:30
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 483 Pomógł: 6303 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 |
|
|
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? |
|
|
13.11.2012, 10:26:54
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 483 Pomógł: 6303 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 |
|
|
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. |
|
|
13.11.2012, 11:17:21
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 483 Pomógł: 6303 Dołączył: 27.12.2004 |
php nie widzi oci. Już ci to pisałem
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 |
|
|
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 |
|
|
13.11.2012, 12:21:59
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 483 Pomógł: 6303 Dołączył: 27.12.2004 |
No ale to pliki .dll powinny być w katalogu c:/windows lub jakoś tak
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
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 |
|
|
13.11.2012, 15:12:10
Post
#12
|
|
Grupa: Moderatorzy Postów: 36 483 Pomógł: 6303 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 |
|
|
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 ? |
|
|
23.09.2013, 19:10:31
Post
#14
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 1 Dołączył: 22.08.2007 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 ? 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 |
|
|
Wersja Lo-Fi | Aktualny czas: 27.06.2024 - 17:04 |