Averatec
3.09.2008, 16:26:08
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
Na 99% nie includowałeś jakiegoś pliku. W Linuxie wielkość liter ma znaczenie (Windows to olewa). Sprawdź czy wszystkie pliki są dołączone.
Averatec
3.09.2008, 16:32:45
Tak wiem, że linux czyta tak jak podamy, a nie jak windows.
Tutaj link do skryptu
http://wklej.org/id/2075/
antyqjon
3.09.2008, 16:56:14
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
3.09.2008, 20:32:33
to czemu skrypt działa pod windowsem, a linuxem nie?
likemandrake
3.09.2008, 21:19:24
Drzewko pytań

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.phpMożna to zrobić tak:
<?php
$oPdo = new PDO();
$oPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>
Pozdrawiam
Averatec
4.09.2008, 13:11:02
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
4.09.2008, 16:26:55
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
4.09.2008, 17:48:04
Może być przyczyną php starsze niż 5.2.5 bo na windowsie miałem 5.2.5?
likemandrake
4.09.2008, 19:19:07
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
4.09.2008, 19:25:57
Nie ja jestem autorem skryptu, skrypt działa pod windowsem ale pod linuxem już nie.
Autor skryptu na wakacjach.
likemandrake
4.09.2008, 19:49:55
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.