Jump to content
lorik

mysql_affected_rows() grr !

Rate this topic

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.

Share this post


Link to post
Share on other 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 ;)


Share this post


Link to post
Share on other 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...


Share this post


Link to post
Share on other 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.


Share this post


Link to post
Share on other 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();

}

Share this post


Link to post
Share on other 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.


Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...