我需要一种方法来做到这一点,如果一个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