日期:2014-05-17  浏览次数:20547 次

高手帮我看下这个代码,请帮忙注释下,谢谢!
PHP code


//获取记录的总笔数

     public function num_rows($results) {  //$results参数是select_query($sql)的返回结果

         if(!is_bool($results)) {  //**********这个地方看不懂,为什么用is_bool()取反判断,这样有什么用?

             $num = mysql_num_rows($results);  

             $this->write_log("获取的记录条数为".$num);  

             return $num;  

         } else {  

             return 0;  

         }  

     }  



------解决方案--------------------
鉴于下面有 $num = mysql_num_rows($results);
所以 if(!is_bool($results)) { 是错误的
不是逻辑类型,并不能说就一定是资源类型
------解决方案--------------------
mysql_query() 执行出错时返回 false(bool) 值。就是判断这个用的。
if(!is_bool($results)) { 如果非bool 值,则说明query 执行成功了,否则失败了。
------解决方案--------------------
值得注意的是参数$results
看你的函数,$results参数应该是数据库查询的结果。
这样的话,用is_bool判断查询是否为假就没有什么好奇怪的了.....