Aller au contenu

mysql_affected_rows() grr !


lorik

Sujets conseillés

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.

Lien vers le commentaire
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 ;)


Lien vers le commentaire
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...


Lien vers le commentaire
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.


Lien vers le commentaire
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();

}

Lien vers le commentaire
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.


Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...