mysql_num_rows
檢索結果集中的行數。該命令僅對像SELECT或SHOW這樣的返回實際結果集的語句有效。
如果沒有匹配,那麼零將是返回值並且有效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
}
}
如果你只是退出數據庫,這是一切都很好。如果更改或從數據庫中刪除行,想知道有多少人受到它的影響...
要檢索受一個INSERT,UPDATE的行數,替換或刪除查詢,使用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()
只會返回FALSE
如果查詢失敗。即使您沒有行但會成功查詢數據庫,它將返回TRUE
。
在代碼中使用`$ _CLEAN`看起來非常可疑。看看這裏爲什麼這是一個壞主意:http://stackoverflow.com/questions/6164522/will-this-code-actually-work-against-sql-injection – Johan 2011-05-28 21:59:34