一、话前唠叨

今天trylife接上两篇继续说帝国CMS SQL类中的对象num()与num1();上边两篇查阅下面两个连接:

query()  与 query1() http://www.trylife.cn/ecms-repeatedly-development-with-db_sql-php/
fetch() 与 fetch1() http://www.trylife.cn/ecms-repeatedly-development-fetch/

简述: 对象num()和num1()都执行的mysql_num_rows(),只是前者参数是SQL语句,后者是SQL语句执行结果;用于获得行数;

二、num()示例

num("select id from {$dbtbpre}ecms_news");
echo $num;

db_close();
$empire=null;
?>

三、num1()示例

query("select * from {$dbtbpre}ecms_news");
$num1=$empire->num1($sql);
echo $num1;

db_close();
$empire=null;
?>

四、讨论部分

1.为啥num()用的是SQL语句 num1()用的是SQL语句执行结果
同样的还是过来看源代码,e/class/db_sql.php;看到num()函数体中 $this->sql=$this->query($query);和fetch1一样的道理,先交给对象query()执行后,得到结果用于参数;

	function num($query)
	{
		$this->sql=$this->query($query);
		$this->num=mysql_num_rows($this->sql);
		return $this->num;
	}
	function num1($sql)
	{
		$this->num=mysql_num_rows($sql);
		return $this->num;
	}

2.用多了可能会想写$num[],其实返回的不是数组,而是整数(整型)
var_dump()函数可以帮助我们检查数据类型,并且可以看到数据内容;

num("select id from {$dbtbpre}ecms_news");
var_dump($num);

db_close();
$empire=null;
?>