PDA

View Full Version : [PHP + MySQL] Problema con query di update


DeMoN3
13-01-2011, 19:05
Salve a tutti.

Sto diventando scemo appresso ad un problema con "update".

Praticamente io scrivo una query anche molto semplice

$query="update tabella set campo='valore' where id='100'";

poi la eseguo

$res=mysql_query($query);

fino a qui tutto normale, la query viene eseguita e i valori sul DB cambiano (quindi la connessione c'è)

ora, per vedere se la query è andata a buon fine, faccio un

if($res)
{
}

che però si comporta in modo anomalo.

Andando a scavare un pò,
ho fatto un

echo $res;

e questo mi restituisce 1 o_O

poi faccio un

echo mysql_affected_rows($res);

ma il php mi avverte con

Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource

e anche se la query va male (ad esempio mettendo un id inesistente), $res è sempre sempre sempre =1

ci sto diventando scemo, mysql_query, associata all'update, dovrebbe restituire true o false a seconda se va bene o male e tramite mysql_affected_rows dovrebbe dirmi quante righe son state modificate o_O


...qualche idea? :muro:

khelidan1980
13-01-2011, 19:13
ma in quel caso la query mica è andata in errore ( se metti un id inesistente) semplicemente, non ritorna righe!

Non conosco php ma a logica mi aspetto uno nel caso la query sia andata a buon fine, cioè viene eseguita e ritorno un set di righe pari a 0...n, oppure 0 nel caso vi siano dei problemi, tipo la connessione cade mentre eseguo la query

DeMoN3
13-01-2011, 19:14
ma in quel caso la query mica è andata in errore ( se metti un id inesistente) semplicemente, non ritorna righe!

ok, e ci può anche stare....ma perchè mysql_affected_rows mi dice che gli passo un mysql-link sbagliato?!'



ok...mi sono rincretinito io...volevo usare il affected_rows e invece leggevo la documentazione del num_rows...

affected_rows come argomento accetta l'handler della connessione da monitorare (nel mio caso inutile, visto che ho una sola connessione)

num_rows invece vuole il risultato della query da monitorare...

e io ho mischiato le due cose...

ora funziona =\