Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Oracle][PHP] Jak się połączyc ?
vander1989
post 19.12.2009, 20:28:01
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 24.08.2009

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


Witka:)
mam bazę danych u siebie na pc i chciałbym się z nią połączyć niestety jakos idzie mi to nie za bardzo mam taki oto kod
  1. <?php
  2. putenv('ORACLE_SID=orcl');
  3.  
  4. $foo=exec("echo %ORACLE_SID%");
  5. // echo $foo;
  6.  
  7. $connection = OCILogon("user","haslo","orcl")
  8. or die("Couldn't logon to database.");
  9. OCILogoff($connection);
  10. ?>
  11.  
  12.  


uczywiscie hasło i usera mam swojego smile.gif i ni w ząb nic mi sie tu ciekawego nie pojawia smile.gif to chyba nie najleiej ? albo moglibyscie przerobic tak zeby pisało iz sie połączyłem? czy moze źle zupelnie się łącze?
Go to the top of the page
+Quote Post
piotrekkr
post 19.12.2009, 20:43:04
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


hmm a nie potrzebujesz czasem uzytkonika i hasła? Taki przykład znalazłem na http://www.orafaq.com/wiki/PHP_FAQ#How_doe...ct_to_Oracle.3F

  1. if ($c = oci_connect("hr", "hr_password", "localhost/XE")) {
  2. echo "Successfully connected to Oracle.";
  3. oci_close($c);
  4. } else {
  5. $err = oci_error();
  6. echo "Oracle Connect Error " . $err['text'];
  7. }
  8.  
Go to the top of the page
+Quote Post
vander1989
post 19.12.2009, 21:02:19
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 24.08.2009

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


hasło daje i usera takze i localhost to ma zostac taki jak jest? tzn bez XE ? czy jak?
Go to the top of the page
+Quote Post
piotrekkr
post 19.12.2009, 21:17:35
Post #4





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


No nie wiem gdzie masz to połączenie z serwera zajrzyj tutaj: http://pl.php.net/manual/en/function.oci-connect.php jest opis w jaki sposób można się łączyć z oracle. Z tego co widziałem możesz użyć tego:

  1. putenv('ORACLE_SID=orcl');


a potem pominąć trzeci argument oci_connect() czyli cos takiego:

  1. putenv('ORACLE_SID=orcl');
  2. if ($c = oci_connect("hr", "hr_password")) {
  3. echo "Successfully connected to Oracle.";
  4. oci_close($c);
  5. } else {
  6. $err = oci_error();
  7. echo "Oracle Connect Error " . $err['text'];
  8. }


Tak pisze w manualu, ale nie jestem pewien do końca bo nie używałem oracle.

Ten post edytował piotrekkr 20.12.2009, 01:09:01
Go to the top of the page
+Quote Post
Pilsener
post 19.12.2009, 22:07:01
Post #5





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Możesz przyczynić się do rozwoju PDO i przetestować to:
http://php.net/manual/pl/ref.pdo-oci.php
Go to the top of the page
+Quote Post
vander1989
post 20.12.2009, 23:16:00
Post #6





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 24.08.2009

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


  1. <?php
  2. putenv('ORACLE_SID=orcl');
  3.  
  4. if ($c = oci_connect("system", "ala_ma_kotka")) {
  5.  
  6. echo "Successfully connected to Oracle.";
  7.  
  8. oci_close($c);
  9.  
  10. } else {
  11.  
  12. $err = oci_error();
  13.  
  14. echo "Oracle Connect Error " . $err['text'];
  15.  
  16. }
  17. ?>
  18.  
  19.  


o kompletnie nic mi nie wyskakuje powinien błąd się pokazać ale niestety nic nie ma:(

Poczytałem i prawdopodbnie mam problem z oci_ wiecie moze jak to doinstalować? bo tez kombinuje i idzie mi jak krew z nosa:(
Go to the top of the page
+Quote Post
jacusek
post 21.12.2009, 12:12:34
Post #7





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Być może nie masz zainstalowanych bibliotek oci8.
Znajdź w php.ini taką linijkę
;extension=php_oci8.dll
i skasuj średnik na początku. No i później oczywiście zresetuj serwer.
Ewentualnie spróbuj w ten sposób:
  1. IF ($c = @oci_connect('user', 'haslo', 'host:1521/nazwa_instancji'))
  2. {
  3. // Wyświetl komunikat o udanym połączeniu.
  4. echo "Udane połączenie z bazą danych Oracle.<br />";
  5. // Rozłącz się.
  6. oci_close($c);
  7. }
Go to the top of the page
+Quote Post
vander1989
post 21.12.2009, 14:41:57
Post #8





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 24.08.2009

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


Możesz wyjaśnić pojęcie nazwa_instancji?
Go to the top of the page
+Quote Post
jacusek
post 21.12.2009, 14:53:24
Post #9





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


no inaczej nazwa bazy danych. zwykle przy instalacji, jeżeli nic nie zmieniasz w Oraclu to jest to orcl.
TO jest dokładnie to ORACLE_SID.

Go to the top of the page
+Quote Post
vander1989
post 21.12.2009, 15:11:38
Post #10





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 24.08.2009

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


  1. <?php
  2.  
  3. IF ($c = @oci_connect('system', 'haslo', 'host:1521/orcl'))
  4.  
  5. {
  6.  
  7. // Wyświetl komunikat o udanym połączeniu.
  8.  
  9. echo "Udane połączenie z bazą danych Oracle.<br />";
  10.  
  11. // Rozłącz się.
  12.  
  13. oci_close($c);
  14.  
  15. }
  16.  
  17. ?>
  18.  
  19.  


czyli mam dokładnie taki plik questionmark.gif
i niestety nic mi to nie pomaga to z oci8 zmieniłem sad.gif można jakos inaczej to podejść?
Go to the top of the page
+Quote Post
jacusek
post 22.12.2009, 08:03:45
Post #11





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


to miał być plik do sprawdzenia czy masz połączenie.
możesz spróbować dodać coś takiego
  1. <?php
  2. // Spróbuj połączyć się z bazą danych, używając podanego loginu i hasła oraz aliasu TNS.
  3. $db ='
  4. (
  5. DESCRIPTION=
  6. (
  7. ADDRESS=
  8. (PROTOCOL=TCP)
  9. (HOST="tu_wpisujesz_nazwe_hosta")
  10. (PORT=1521)
  11. )
  12. (
  13. CONNECT_DATA=
  14. (SID=ORCL)
  15. )
  16. )';
  17.  
  18. if ($c = @oci_connect('user', 'haslo', $db))
  19. {
  20. echo "Udane połączenie z bazą danych Oracle.<br />";
  21. // Rozłącz się.
  22. oci_close($c);
  23. }
  24. else
  25. {
  26. // Pobierz informacje o błędzie parsowania.
  27. $errorMessage = oci_error();
  28. // Otwórz tabelę HTML.
  29. print '<table border="1" cellpadding="0" cellspacing="0">';
  30. // Wyświetl elementy tablicy.
  31. foreach ($errorMessage as $name => $value)
  32. print '<tr><td>'.$name.'</td><td>'.$value.'</td></tr>';
  33. // Zamknij tabelę HTML.
  34. print '</table>';
  35. }
  36. ?>

TO już chyba całość. U mnie działa. Jeżeli masz wątpliwości możesz spróbować zalogować się na defaultowego użytkownika scott i spróbować pobrać jakieś dane z jego tabeli.
Go to the top of the page
+Quote Post
vander1989
post 22.12.2009, 21:11:47
Post #12





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 24.08.2009

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


kuu.... biała goraczka o krok .... to jest jakas masakra ! nic totalnie nic sie nie pojawia jakiego ja mam hosta moze to pisze źle?? mam oracla 11g nic nie zmieniałem mam go na pc swoim
Go to the top of the page
+Quote Post
jacusek
post 23.12.2009, 08:09:49
Post #13





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Informacje na temat hosta masz w takim pliku tnsnames.ora (wyszukaj plik)
Poza tym zadawałeś jakieś pytania do Oracla? Na pewno On Ci działa?? Bo chyba nie masz postawionej bazy. Zacznij od tego.
Żeby działał Oracle musisz mieć w usługach (przynajmniej tak jest w Windows) sprawdzić czy działają Ci procesy Oracla i Listenera.
Jak jest w Linuxie nie wiem niestety bo tu moja wiedza nie sięga.
Go to the top of the page
+Quote Post
vander1989
post 23.12.2009, 11:23:30
Post #14





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 24.08.2009

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


oracle działa bo sobie pisze ładnie w sql toolsie i wszystko smiga sad.gif a to nic nadal nie pomogło sad.gif
Go to the top of the page
+Quote Post
_Magus_
post 15.02.2011, 17:34:18
Post #15





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.02.2011

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


Mam podobny problem - sqlplus dziala (choc tylko w katalogu instant cleinta), a w php kiszka do potegi.
oci_connect zwraca false, a potem oci_error tez false - kompletnie nie wiem jak to ugryzc sad.gif
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: 6.06.2024 - 00:46