[PHP][Problem] Wpis do bazy skryptu uruchamianego z Crona

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
gantel
Posty: 4
Rejestracja: wt wrz 13, 2005 3:44 pm
Kontakt:

[PHP][Problem] Wpis do bazy skryptu uruchamianego z Crona

Post autor: gantel »

Witam
Mam skrypcik ktory odpalany recznie dziala doskonale a konkretnie laczy sie z baza mysql i dodaje nowy wpis do tabeli codziennie, o okreslonej porze.

Ten sam skrypt odpalany z crona nie umieszcza tego wspisu w bazie, a wszystkie inne funkcje w nim wystepujace dzialaja tak jak trzeba.

Co moze powodowac taki problem, czy cron nie ma zezwolenia na operacje w bazie danych ??

Spotkal ktos sie z takim problemem

pozdrawiam

Sławek
viraptor
Zaczyna działać
Zaczyna działać
Posty: 633
Rejestracja: pn cze 28, 2004 12:58 pm
Kontakt:

Re: [PHP][Problem] Wpis do bazy skryptu uruchamianego z Crona

Post autor: viraptor »

A sprawdzasz błędy przez mysql_error w odpowiednim momencie? ;) Podaj co zwraca mysql, to może będziemy ci w stanie pomóc...
gantel
Posty: 4
Rejestracja: wt wrz 13, 2005 3:44 pm
Kontakt:

Re: [PHP][Problem] Wpis do bazy skryptu uruchamianego z Crona

Post autor: gantel »

viraptor pisze:A sprawdzasz błędy przez mysql_error w odpowiednim momencie? ;) Podaj co zwraca mysql, to może będziemy ci w stanie pomóc...
Ale nie zrozumielismy sie, skrypt ten nie wyswietla zadnych bledow i dziala uruchamiany recznie, ale gdy go uruchomie z CRONA nie wykonuje zadania(nie dodaje wpisu w bazie)
viraptor
Zaczyna działać
Zaczyna działać
Posty: 633
Rejestracja: pn cze 28, 2004 12:58 pm
Kontakt:

Re: [PHP][Problem] Wpis do bazy skryptu uruchamianego z Crona

Post autor: viraptor »

Zgadza się - nie zrozumieliśmy się. Jak wykonujesz go ręcznie, to nie wyświetla err, bo robi wszysko poprawnie.
Odpalasz pod cron'em, więc masz 3 możliwości:
- nie uruchamia się wogóle - powinieneś zrobić echo cokolwiek, żeby dostać maila z raportem i to sprawdzić, albo
- wstawia wszystko jak trzeba do bazy, więc nie ma problemu, albo
- uruchamia się, ale nie wstawia do bazy, więc błąd występuje w czasie któregoś z poleceń mysql'a, lub masz błąd w skrypcie - jeśli nie wykonuje np. połączenia do mysql to mysql_connect zwraca błąd, jeśli nie wykonuje query, to mysql_query zwraca błąd, itd.

Nie ma możliwości, żeby:
- skrypt był poprawny
- wykonywał się z ręki i uruchamiał się pod cronem
- nie łączył się do bazy, ale nie zwracał przy tym błędów

Więc mówię jeszcze raz: po każdej linii z obsługą mysql wstaw obsługę w stylu 'or die(mysql_error());' i wstaw skrypt do cron'a. Musisz dostać wtedy albo informacje, że któraś z komend obsługi bazy się nie powiodła, albo po prostu popełniłeś jakiś błąd w skrypcie i nie próbuje on nawet połączyć się z bazą.
Sprawdzenie przez echo 'aaa', czy wogóle zostaje uruchomiony, też jest dobrym pomysłem.
ODPOWIEDZ