Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie do wielu serwerów
Forum PHP.pl > Forum > Bazy danych > Oracle
Kaes13
Nie wiem czy ten problem dotyczy oracla czy php czy rozszerzenia pear db (a może po prostu mnie)
Chcę używając pear db podłączyć się do baz oracla i jeżeli chodzi o podłączenie się do jednego serwera nie ma problemu problem zaczyna się w momencie kiedy próbuje uzyskać odpowiedź na zapytanie z kilku serwerów bo zwraca mi tylko info z 1 serwera z kolejki przepytywanych. Jeżeli ręcznie wpisze konkretny serwer wszystko działa bez problemu jak użyje pętli wszystko się kaszani
  1. <?php
  2. include_once('DB.php'); 
  3. $server='1';
  4. while ($server<4){
  5. define("NR_DB_CONNECTION","oci8://user:password@servnr$server");
  6.  
  7. $dbh = DB::connect(NR_DB_CONNECTION);
  8.  
  9. if (DB::isError($dbh)) {
  10. print "Database connection failed: ";
  11. print $dbh->getMessage();
  12. }
  13. $dbh->setErrorHandling(PEAR_ERROR_DIE);
  14.  
  15. // prepare statment
  16. $alter="alter session set nls_date_format = 'dd/mm/yyyy hh24:mi:ss'";
  17. $i=1;
  18. while ($i<30){
  19.  
  20. $stmt = "select * from employ where data_inc>='$i/04/2007' “
  21.  
  22. $res=$dbh->query($alter);
  23. $result=$dbh->query($stmt);
  24.  
  25. while ($data = $result->fetchRow()) {
  26.  $wysw.= "<tr><td>$data[0]</td><td>$data[1]</td><td>$data[2]</td><td>$i/04/2007</td></tr>";}
  27. $i++;
  28. }
  29. // Database disconnect
  30. $result->free();
  31. $dbh->disconnect();
  32. $server++;
  33. }
  34. echo "<table border="1">";
  35. echo "<tr><td>Name</td><td>LastN</td><td>Order</td><td>Data</td></tr>";
  36. echo $wysw;
  37. echo "</table>";
  38. ?>
nospor
Kod
define("NR_DB_CONNECTION","oci8://user:password@servnr$server");

Nie mozesz w petli dac takiego kodu, gdyz php pozwala na definiowanie stalych tylko raz. zrob z tego zmienna, na grzyba define?

Jakies bledy dostajesz inne?

pozatym nie: $server='1';
a: $server=1;
wkocnu $server to liczba ktora zwiekszasz a nie tekst
Kaes13
Błędów żadnych nie dostaje jedyne co w odpowiedzi dostaje to wynik zapytania z pierwszego serwera powtórzony o ilość przebiegu pętli czyli np 3 razy te same wyniki z tego samego serwera.
Co do zmiennej $server faktycznie błąd (kombinowałem ze wszystkim)
A co do
define("NR_DB_CONNECTION","oci8://user:password@servnr$server");
To właśnie miałem wątpliwości ale podłącza mnie do pierwszego serwera więc chyba działa
nospor
Cytat
A co do
define("NR_DB_CONNECTION","oci8://user:password@servnr$server");
To właśnie miałem wątpliwości ale podłącza mnie do pierwszego serwera więc chyba działa
No bo za pierwszym obiegem petli utworzy ci stala, bo jej jeszcze nie ma. Ale przy kolejnych obiegach nie zmieni ci juz stalej, bo ona juz jest!
Jak mowie ze nie mozesz dawac w petli to znaczy ze nie mozesz tongue.gif zrob z tego zmienna

Cytat
Błędów żadnych nie dostaje
daj error_reporting(E_ALL); a zaczniesz dostawac, chociazby o tym define tongue.gif
Kaes13
Prawdopodobnie masz rację ale nie bardzo wiem jak zdefiniować tak zmienną by to zadziałało a co do define jak się obejść bez tego też za bardzo nie wiem co do
error_reporting = E_ALL & ~E_NOTICE i nie wywala mi błędów biggrin.gif
nospor
oj...
nie:
  1. <?php
  2. define("NR_DB_CONNECTION","oci8://user:password@servnr$server");
  3. ?>

a:
  1. <?php
  2. $zmienna = "oci8://user:password@servnr$server";
  3. ?>

i zamiast odwolywac sie do NR_DB_CONNECTION odwoluj sie do $zmienna


Cytat
rror_reporting = E_ALL & ~E_NOTICE i nie wywala mi błędów
Byc moze masz ustawione display_errors na Off tongue.gif
Kaes13
Działa, działa, działa guitar.gif
ale
display_errors = On biggrin.gif


Dziękuje bardzo
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.