Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP5 + Debian = Problem!
Forum PHP.pl > Forum > PHP
Averatec
Witam,
Mam na imię Kamil(15lat), a oto mój problem:
Posiadam skrypt, który na windowsie 32bit działa super(zainstalowany xampp 1.6.6)!
No i postanowiłem przestawić się na debiana 32bit, no instaluję php5, apache2, mysql5,
wgrywam stronę cieszę się, że już wszystko jest ok, no i przeglądam rózne skrypty itd., wchodzę w jedną z zakładek a tam takie coś:

Fatal error: Call to a member function fetch() on a non-object in /var/www/skrypt.php on line 15

Czy ktoś z Was wie w czym problem, może nie zainstalowałem ważnego składnika albo źle coś skonfigurowane?
Proszę Was o pomoc
bim2
Na 99% nie includowałeś jakiegoś pliku. W Linuxie wielkość liter ma znaczenie (Windows to olewa). Sprawdź czy wszystkie pliki są dołączone.
Averatec
Tak wiem, że linux czyta tak jak podamy, a nie jak windows.
Tutaj link do skryptu http://wklej.org/id/2075/
antyqjon
Chodzi o to, że wartość zwracana przez query(...) nie posiada metody fetch. Czyli zapytanie się nie powiodło i nie zwróciło obiektu klasy PDOStatement. Wniosek - coś nie tak z zapytaniem.
Averatec
to czemu skrypt działa pod windowsem, a linuxem nie?
likemandrake
Drzewko pytań smile.gif

1. Czy baza danych działa?
2. Czy baza zawiera wszystkie tabele oraz dane? Chodzi o to czy jest taka sama struktura jak w windowsie.
3. Czy PDO poprawnie łączy się z bazą danych?

Aby szybko sprawdzić każdy z punktów, należy zaraz po utworzeniu obiektu PDO ustawić obsługę błędów PDO na zgłaszanie wyjątków lub ostrzeżeń w razie wystąpienia jakiegoś problemu.

http://pl2.php.net/manual/pl/pdo.error-handling.php

Można to zrobić tak:

  1. <?php
  2. $oPdo = new PDO();
  3. $oPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  4. ?>


Pozdrawiam
Averatec
Baza działa doskonale i jest identyczna.
Oto co wywaliło gdy dodałem te linijki od PDO

Warning: PDO::__construct() expects at least 1 parameter, 0 given in /var/www/ots/shopsystem.php on line 2

Fatal error: Call to a member function setAttribute() on a non-object in /var/www/ots/shopsystem.php on line 3
likemandrake
Osz kurcze, podałem tylko przykład jak zmienić te ustawienia, a ty na ślepo skopiowałeś ten kawałek kodu. W pierwszej linijce chciałem tylko wskazać dokładne miejsce po którym ma nastąpić wywołanie metody 'setAttribute' z zadanymi parametrami... Tym miejscem jest tworzenie obiektu PDO, znajdź takie miejsce u siebie w kodzie...
Averatec
Może być przyczyną php starsze niż 5.2.5 bo na windowsie miałem 5.2.5?
likemandrake
Cytat(Averatec @ 4.09.2008, 18:48:04 ) *
Może być przyczyną php starsze niż 5.2.5 bo na windowsie miałem 5.2.5?


Jeżeli to pytanie jest skierowane do mnie i tyczy się błędu który wyświetliłeś, to odpowiadam... Nie ma co się dziwić, że jest błąd, ponieważ konstruktor PDO, rzeczywiście wymaga przynajmniej jednego parametru, ale to już wspomniałem w poście powyżej o co chodzi... Nie rozumiesz?
Averatec
Nie ja jestem autorem skryptu, skrypt działa pod windowsem ale pod linuxem już nie.
Autor skryptu na wakacjach.
likemandrake
To uruchom jakąś wyszukiwarkę do przeszukiwania plików na dysku i w polu zawartość wpisujesz po prostu 'new pdo'. Wcale nie trzeba być autorem, skrypty PHP są otwarto źródłowe...
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.