Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Brak PDO
Forum PHP.pl > Forum > PHP
DEXTER_c
Posiadam serwer Apache2 i php 5.1.6. W manualu jest napisane, że biblioteko PDO jest zainstalowana i włączona domyślnie w php 5.1+.

Gdy próbuję skorzystać z biblioteki PDO:
  1. <?php
  2. $pdo = new PDO('mysql:host=localhost;dbname=dbname', 'user', 'pass');
  3. ?>


Wywala mi błąd:
Fatal error: Class 'PDO' not found in...

Co może być przyczyną takiego stanu rzeczy?
nasty
w php.ini odkomentuj wszystkie linjie zwiazane z pdo ktore Cie interesuja w sekcji [extentions]
DEXTER_c
Cytat(nasty_psycho @ 26.12.2006, 18:02:27 ) *
w php.ini odkomentuj wszystkie linjie zwiazane z pdo ktore Cie interesuja w sekcji [extentions]


W php.ini nie mam sekcji [extentions] smile.gif Nie mam tam też ani słowa o PDO.
Denver
Sądząc po sygnaturce, używasz Linuksa. Jeśli sam kompilowałeś php, to podczas konfiguracji musisz ustawić parę flag odpowiedzialnych za wkompilowania PDO (przykład jest w manualu). Sam się z tym ostro męczyłem, w końcu jakoś poszło. Nie jestem teraz niestety na swoim komputerze, więc nie podeślę stron opisujących główne problemy, które sobie do zakładek dodałem.
DEXTER_c
Cytat(Denver @ 26.12.2006, 19:34:49 ) *
Sądząc po sygnaturce, używasz Linuksa. Jeśli sam kompilowałeś php...


Nie kompilowałem, zainstalowałem standardowy pakiet .deb z repozytorium. Dodam szczerze, że chciałbym koniecznie uniknąć konieczności kompilacji smile.gif
ARJ
sprawdź czy PDO znajduje się w folderze ext w php. jeżeli nie ma to instalujesz PEAR, do php.ini dodajesz
Kod
extension=php_pdo.dll
extension=php_pdo_mysql.dll

w 2 linii ładujesz moduł do odpowiedniej bazy którą używasz.
Sabistik
~ARJ nie wiem czy zauważyłeś ale mowa o linuxie.
~DEXTER_c strzelam, bo nie widze phpinfo() - nie masz pewnie samego sterownika. Doistaluj pakiet php5-mysql (albo coś w ten deseń, tylko to jest w unstable)
DEXTER_c
Cytat(ARJ @ 26.12.2006, 19:53:45 ) *
sprawdź czy PDO znajduje się w folderze ext w php. jeżeli nie ma to instalujesz PEAR, do php.ini dodajesz


w /usr/include/php5/ext nie ma PDO.

Nie wiem czy teraz problem bardziej dotyczy php czy Linuksa, ale może będziecie znali odpowiedź.
Próbuję zainstalować PDO za pomocą pecl (zgodnie z howto dostępnymi w Internecie). Jednak po wpisaniu:
sudo pecl install pdo
Pojawia się komunikat:
sudo: pecl: command not found
Znaczy się nie mam zainstalowanego PECL-a w systemie? Informacji na temat, jak zainstalować pecl już nie znalazłem. Jestem na razie bezradny...

Cytat(Sabistik @ 26.12.2006, 20:25:30 ) *
~ARJ nie wiem czy zauważyłeś ale mowa o linuxie.
~DEXTER_c strzelam, bo nie widze phpinfo() - nie masz pewnie samego sterownika. Doistaluj pakiet php5-mysql (albo coś w ten deseń, tylko to jest w unstable)


php5-mysql mam zainstalowane. Sama baza MySQL z poziomu php działa znakomicie.
KG-
apt-get install php5-pdo-mysql

potem dopisz do php.ini linijkę:
extension=pdo_mysql.so

jak nie wystarczy to jeszcze
extension=pdo.so

Potem oczywiście restart apache-a czy czego tam używasz i powinno działać. Jak nie to zobacz do error.loga i wklej komunikat o błędzie.

PS. Jeśli masz zamiar ograniczyć się tylko do mysql-a to nie polecam wersji linuxowej PDO - ma mnóstwo bugów i będzie ci się wysypywać przy dużym obciążeniu serwera albo gdy zrobisz jakąś większą klasę która dziedziczy z PDO (w wersji windowsowej nie zauważyłem tego typu problemów na tym samym kodzie). Lepiej mysqli, zero problemów do tej pory.
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.