2012-01-19 53 views

回答

5

您可以使用mysql_num_rows()来计算返回的行数,并检查从查询中接收到的数量。

$results = mysql_query("SELECT * FROM..."); 
if(mysql_num_rows($results) > 0) { 
    // Got some results 
} else { 
    //no rows 
} 

但是请注意,如果查询失败,因为一个无效的SQL或其他一些原因,$results会是假的,所以你可以这样做:

if(!$results) { 
    // Query was invalid 
} 
+0

美丽,谢谢。 –

-2

Manual

对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回resultset的语句,mysql_query()返回成功的资源,或者错误返回FALSE。

要检查它是否是成功的,它可能是使用isset!empty一个好主意:

$rs = mysql_query("select 1"); 
if (!empty($rs)){ 
    //everything ran fine 
} 
else{ 
    //something broken 
} 
+0

这不是用户想要的。 –

0

如果没有记录返回,mysql_num_rows($resultHandle)将返回0(零)

3

你可以使用mysql_num_rows()

如果mysql_query()返回FALSE这意味着查询操作存在操作问题,而不是没有返回行。

流程是这样的:

$query = "SELECT * FROM wherever"; 
if (!$result = mysql_query($query)) { 
    // mysql_error() gives a human readable string that explains what went wrong 
    // You should **never** show it in a production environment! 
    die('MySQL Error: '.mysql_error()); 
} 

if (!mysql_num_rows($result)) { 
    // There were no results 
} else { 
    // There were some results 
} 

这是唯一真正的返回数据(SELECTDESCRIBE等)查询 - 只是执行操作(INSERTUPDATEDELETE等)查询永远如果操作成功则返回TRUE,如果失败则返回FALSE

manual

对于SELECT,SHOW,描述,解释等语句返回的结果集,请求mysql_query()成功返回的资源,或者在错误FALSE。

对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,mysql_query()在成功时返回TRUE或在错误时返回FALSE。