mysql_num_rows
recupera el número de filas de un conjunto de resultados. Este comando solo es válido para sentencias como SELECT o SHOW que devuelven un conjunto de resultados real.
Si ninguno coincide, entonces cero será el valor de retorno y efectivamente FALSE
.
$result = mysql_query($query);
if(mysql_num_rows($result))
{ //-- non-empty rows found fitting your SQL query
while($row = mysql_fetch_array($result))
{//-- loop through the rows,
//-- each time resetting an array, $row, with the values
}
}
Lo que está bien y bien si solo se saca de la base de datos. Si cambia o borrar registros de la base de datos y desea saber cuántos fueron afectados por ella ...
Para recuperar el número de filas afectadas por una instrucción INSERT, UPDATE, sustituir o eliminar la consulta, utilice mysql_affected_rows()
.
$result = mysql_query($query);
if(mysql_affected_rows())
{ //-- database has been changed
}
//-- if you want to know how many rows were affected:
echo 'Rows affected by last SQL query: ' .mysql_affected_rows();
mysql_query()
sólo devolverá FALSE
si la consulta no. Devolverá TRUE
incluso si no tiene filas, pero ha consultado con éxito la base de datos.
El uso de '$ _CLEAN' parece muy sospechoso en el código. Vea aquí por qué esta es una mala idea: http://stackoverflow.com/questions/6164522/will-this-code-actually-work-against-sql-injection – Johan