Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PEAR DB - Problemy z polaczeniem.
Forum PHP.pl > Forum > PHP
thornag
Witam. Wczoraj postanowilem skorzystac z gotowej warsty abstrakcji jaka jest PEAR DB. Wszak jak to ktos mowil nie ma sensu wywazac juz otwartych drzwi. Jednak moje obawy przed tak ogromnym pakietem (chyba) okazaly sie sluszne. Po upewnieniu sie ze server ma wszystko czego potrzebuje, (PHP4 with pear, i PHP5) zuploadowalem pakiet. Wszystko pieknie dziala includuje sie mozna wiec stwierdzic ze cala instalacja przebiegla pomyslnie. Problem pojawil sie przy pierwszych testach.

Taki oto kod

  1. <?php
  2. $dsn = 'mysql://'.$config['db']['user'].':'.$config['db']['pass'].'@'.$config['db']['host'].'/'.$config['db']['name'];
  3.  
  4. $conn = DB::connect($dsn);
  5. if (DB::isError($conn)) {
  6. print "Nieudane";
  7. } else {
  8. print "Teoretycznie udane.";
  9. }
  10. ?>


Powoduje zatrzymanie skryptu. Ustawienie najwyzszego error reporting nic nie zmienia, bledow jako takich nie ma. Kiedy probuje cos wyprintowac przed ta instrukcja np $dsn, to skrypt pokaze mi $dns, ta sama linika skopiowana ponizej proby polaczenia nie zostaje juz wykonywana.

Czy ktos ma jakis sposob albo pomysl jak wysledzic gdzie tu jest blad ? Strasznie ciezko sie przekopac przez to wszystko bez komunikatow.

Jako ze jest to moja pierwsza przygpda z PEAR nie jestem do konca pewny czy server jest wystarczajaco skonfigurowany.
Tutaj sa phpinfo dla PHP4 i PHP5
PHP4 i PHP5

Dodam jesio w razie pytan ze $dsn jest poprawny. Sprawdzalem biggrin.gif
nazihipi
wstaw to na początku strony (przed wywołanie pakietu PEAR)
  1. <?php
  2. if( ( substr( strtoupper( PHP_OS ), 0, 3 ) ) == 'WIN' ) {
  3. define( 'PATH_SEPARATOR', ';' );
  4. }
  5. else {
  6. define( 'PATH_SEPARATOR', ':' );
  7. }
  8. $oldIncPath = ini_get( 'include_path' );
  9. ini_set( 'include_path', 'bezwzgleda_sciezka_do_katalogu_z_Pear' . PATH_SEPARATOR . $oldIncPath);
  10. ?>



ps. wysil się trochę i odpal wyszukiwarkę forum , bo o PERA tutaj jest dużo....
thornag
Wracajac do pytania.

po zastosowaniu powyzszego kodu mamy:

Kod
Fatal error: Call to undefined function: assertextension() in /usr/share/pear/DB/mysqli.php on line 110


Jakiekolwiek inne pomysly ?
nazihipi
a przepraszam, że się tak zapytam niedyskretnie: dołączyłeś może plik z zestawem klas??
  1. <?php
  2. require_once 'DB.php';
  3. ?>


Cytat
  1. <?php
  2. if (DB::isError($conn)) {
  3. ?>

powinno się stosować
  1. <?php
  2. if( PEAR::isError( $conn ) ) {
  3. ?>


EDIT:
1) Gdyby bardzo Ci się nudziło i niemiałbyś co robić to zaglądnij do manuala, tak będzie prościej... DB::connect example

2) Pakiet DB został wchłonięty przez MDB2 i to on jest teraz rozwijany (choć twórcy zapewniają, że DB także my i tak wiemy, że to gówno prawda... cool.gif )

3) Polecam php::PDO (ale co kto woli.....)
thornag
Ogolnie sprawa wyglada tak ze korzystam z pewnej ksiazki z ktorej probowalem wykorzystac przyklad.

Oczywiscie ze klase dolaczylem smile.gif

Problem polega na tym ze skrypt wysypuje sie w lini DB::connect(); wiec zmiana DB na PEAR nic nie dala.

A jako ze rzeczywiscie czytajac forum zauwazylem ze PDO jest popularne, czas zajac sie PDO smile.gif

Do uslyszenia z problemami PDO smile.gif Dzieki za pomoc i sugestie.
nazihipi
Cytat(thornag @ 20.08.2006, 21:40 ) *
Problem polega na tym ze skrypt wysypuje sie w lini DB::connect(); wiec zmiana DB na PEAR nic nie dala.

to było tylko takie małe a' propos kodu

powodzenia z PDO
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.