Aller au contenu
lorik

mysql_affected_rows() grr !

Noter ce sujet :

Recommended Posts

Bonjour à tous,

Un truc tout C... mais qui me pourrit la vie !

Une requete bete et mechante (qui fonctionne !), pour updater des données, et un comptage du nombre d'enregistrement affectés.

Simplement, quand il n'y a pas d'enregistrement concernés, je me retrouve avec une erreur dans mes logs !

ErrorException' with message 'mysql_affected_rows() expects parameter 1 to be resource, boolean given' in /home/loprik/domains/XXXxxxr.php:53
mysql_affected_rows(true).

ça me fait gonfler mes fichiers logs pour rien, et je comprends vraiment pas le problème :(

Une idée de qulequ'un de sympa me dépanerait bien :).

Par avance merci.

Partager ce message


Lien à poster
Partager sur d’autres sites

La fonction attend une resource en parametre, le lui passe un booléen (je ne fais que traduire l'erreur), si d'ailleurs tu postais le code en question, peut-être serais-je plus clair ;)


Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour et merci, Stephane,



Voila le code (mais c'est vriament du basique)



$req="update source_pages set current_crawl=0, erreurs=(erreurs+1), statut='erreur1' WHERE date_crawl=0 and current_crawl<'$vieuxcrawl' and current_crawl<>0";
$res=mysql_query($req);
if ($res)
{
$nb_supressions=mysql_affected_rows($res);
}

Pour le booleen, oui, j'ai vu ça, la question, c'est pourquoi ça me met un booléen au lieu d'un bete 'zero' s'il n'y a pas d'enregistrement affecté ?



Je confirme que la requete passe bien sous phpmyadmin...


Partager ce message


Lien à poster
Partager sur d’autres sites

Selon la doc PHP :



Pour les autres types de requêtes, INSERT, UPDATE, DELETE, DROP, etc., mysql_query() retourne TRUE en cas de succès ou FALSE en cas d'erreur.



Tu ne dois donc pas passer $res en paramètre de la fonction mysql_affected_rows(), vu qu'il ne s'agit pas d'une ressource de connexion mais toujours d'un booléen.


Partager ce message


Lien à poster
Partager sur d’autres sites

$link = mysql_connect('machin','truc','');

$req="update source_pages set current_crawl=0, erreurs=(erreurs+1), statut='erreur1' WHERE date_crawl=0 and current_crawl<'$vieuxcrawl' and current_crawl<>0";

$res=mysql_query($req);

if ($res)

{

$nb_supressions=mysql_affected_rows($link);

}

ou

$req="update source_pages set current_crawl=0, erreurs=(erreurs+1), statut='erreur1' WHERE date_crawl=0 and current_crawl<'$vieuxcrawl' and current_crawl<>0";

$res=mysql_query($req);

if ($res)

{

$nb_supressions=mysql_affected_rows();

}

Partager ce message


Lien à poster
Partager sur d’autres sites

Waho, subtil, subtil :).



Je suis dév du dimanche, j'avais pas vu la nuance sur la notion de 'connexion'. je passe toujours l'appel mysql, y compris dans mes mysql_num_rows(). Je suppose que je dois faire la même erreur, je vais checker cela.



Merci pour tout, ça marche nickel.


Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×