我需要一種方法來做到這一點,如果一個MySQL查詢dosn't檢索任何數據,會發生一些事情。這是一個例子。PHP MYSQL if null statement
$color="red";
$query = mysql_query("SELECT * FROM people WHERE shirt='$color'");
if($query = null){
echo 'No people wearing '.$color' shirts available.';
}
我需要一種方法來做到這一點,如果一個MySQL查詢dosn't檢索任何數據,會發生一些事情。這是一個例子。PHP MYSQL if null statement
$color="red";
$query = mysql_query("SELECT * FROM people WHERE shirt='$color'");
if($query = null){
echo 'No people wearing '.$color' shirts available.';
}
爲此使用mysql_num_rows()
。
if(mysql_num_rows($query) == 0) {
// No results returned
使用mysql_num_rows
來檢查您的查詢返回了多少行。
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);
$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);
if($num_rows == 0) {
// No results returned
echo "No results!";
} else {
echo "$num_rows Rows\n";
}
?>
除了mysql_num_rows()
還有COUNT()
可能像這樣被使用:
"SELECT COUNT(*) FROM people WHERE shirt='$color'"
你實際上可能需要更多的數據從數據庫中,但如果你只需要一個號碼,然後這將刪除需要爲if
。
你可以使用empty
之一:
$num_rows = mysql_num_rows($result);
if(empty($num_rows)){
echo 'No results';
}
一個缺點這種方法是實際得到的數據(如果存在的話),你必須作出至少兩次調用數據庫。數據可能在呼叫之間改變也是可能的。 – brainimus 2010-06-24 21:16:44