Problème de php en ligne de commandes (linux)

Eléphant du PHP | 193 Messages

15 févr. 2007, 11:34

Bonjour,

je souhaiterais lancer un script php en cron une fois par jour. Quand je lance mon script php sur mon navigateur, aucun problème, tout fonctionne comme sur des roulettes, mon script ne serait donc pas la cause du problème. Par contre, quand je lance le script en ligne de commande (je tape 'php reset_db.php'), j'ai une erreur

Code : Tout sélectionner

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/infodb/reset_db.php on line 33
et mon script est inopérant.

Dans le script, j'ai plusieurs 'require' avec à chaque fois le chemin absolu du fichier, car je pensais que c'était la cause de mon problème. Avez-vous une idée pour expliquer mon soucis?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 févr. 2007, 11:47

Et si tu affiches la requête ? que tu testes le résultat de mysql_query() ? la connexion à la base de données ? et éventuellement afficher les valeurs provenant de tes require si tu pense que le problème vient de là... Peut être auras-tu ainsi une piste sur les différences que tu peux avoir entre la ligne de commande et le navigateur ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 1961 Messages

15 févr. 2007, 11:58

Bonjour,
En plus des remarques de Ryle tu devrais lancer ton script avec l'option -f

Code : Tout sélectionner

php -f reset_db.php
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 193 Messages

15 févr. 2007, 12:30

Je vous remercie de vous être penchés sur mon problème. En suivant vos conseils, j'ai compris mon erreur: sur FF, je lance mon script, certes, mais avec des paramètres passés en GET, lesquels permettent entre autre de selectionner la base de données. Je n'avais donc pas de base de données selectionnée, d'où le message d'erreur. Désormais, tout fonctionne, merci à vous pour m'avoir mis sur la piste!