我正在尝试检查mysql查询的值是否返回false或者实际上包含一个值。我的第一个解决方案运行正常,如下所示:
$gotTrailer = mysql_query("SELECT trailer FROM film_backup WHERE id='".key($countValues)."'");
$iHasTrailer = mysql_fetch_array($gotTrailer);
while(mysql_num_rows($gotTrailer)==''){
next($countValues);
$gotTrailer = mysql_query("SELECT trailer FROM film_backup WHERE id='".key($countValues)."'");
$iHasTrailer = mysql_fetch_array($gotTrailer);
}这是一个非常难看的解决方案,所以我尝试使用mysql_num_rows():
$gotTrailer = mysql_query("SELECT trailer FROM film_backup WHERE id='".key($countValues)."'");
while(mysql_num_rows($gotTrailer)==0){
next($countValues);
$gotTrailer = mysql_query("SELECT trailer FROM film_backup WHERE id='".key($countValues)."'");
}但不管是什么原因,这根本行不通。我也试过使用=== false,但我真的不知道出了什么问题。希望你能帮上忙。
发布于 2013-05-05 08:43:56
mysql_query()只有在输出错误时才返回false。如果查询返回空结果,它仍然返回资源(非false、empty或0)。
如果没有更多的行,mysql_fetch_array()将返回false,否则返回一个数组。
顺便说一下,这些方法已经被弃用了。
发布于 2013-05-05 08:54:44
出错时,mysql_query返回false。如果要检查查询中是否存在错误,则应检查该函数的返回值。
现在,如果您想检查是否有结果,mysql_num_rows将在出错时返回>= 0或false。所以,你的时间应该是
while( (mysql_num_rows($gotTrailer) !== false) ){除此之外,代码还有其他缺陷,next()可能返回false并且mysql_query将失败,此外,请记住避开查询以避免SQL注入。
发布于 2013-05-05 08:58:51
您也可以尝试使用For Loop
$gotTrailer = mysql_query("SELECT trailer FROM film_backup WHERE id='".key($countValues)."'");
for($i=0; $i<mysql_num_rows($gotTrailer); $i++)
{
next($countValues);
$gotTrailer = mysql_query("SELECT trailer FROM film_backup WHERE id='".key($countValues)."'");
}https://stackoverflow.com/questions/16380256
复制相似问题