CMS系统之解读articles.php文件
1、$result=$db->q("select * from my_cata where classid='$classid'");
$classid=$GLOBALS['db']->v("my_cata|classid|classid='$b'");
二者差别在于前者是直接从数据库读取,但是调用了db这个类下面的q()函数,而下面一个是调用实例引用v()函数,数据库读取是在那个类中已经事先调取好的。


2、intval 变量转成整数类型。 自定义一个strget()函数,我们看看这是干什么的。在func.php文件里面。
function strget($str)
{
if ($str == "") { (判断传递来的字符串值是否为空)
return "";(若是返回空)
} else {
return enaddslashes(@$_GET[$str])."";(不是则采用enaddslashes()自定义函数进行数据处理)
}
}

3、function enaddslashes($str=""){ (函数预先定义默认值为空)
if(get_magic_quotes_gpc()==1){ (判断取得环境变量是否打开布尔值)
return $str;(返回取得的$str值)
}else{
return addslashes($str);(否则用addslashes()函数对字符串进行处理,addslashes() 函数在指定的预定义字符前添加反斜杠。这些字符是单引号(')、双引号(")、反斜线(\)与NUL(NULL字符)。)
}
}
【get_magic_quotes_gpc取得 PHP环境变量magic_quotes_gpc 的值。语法: long get_magic_quotes_gpc(void);
返回值: 长整数函数种类: PHP 系统功能内容说明本函数取得 PHP 环境配置的变量magic_quotes_gpc (GPC, Get/Post/Cookie) 值。
返回 0 表示关闭本功能;
返回 1 表示本功能打开。
PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。
当 magic_quotes_gpc 打开时,所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符会自动转为含有反斜线的转义字符。
get_magic_quotes_gpc经常与stripslashes函数配合使用,如果get_magic_quotes_gpc返回1时,则用stripslashes函数对字符串进行处理。】

4、$result=$db->q("select * from my_cata where classid='$classid'");(调用类db的q()函数执行一次查询返回一个id值或者false)
if(intval($db->v("my_cata|classid|classid='$classid'"))===0){
echo "CLASSID NOT EXIST IN DATABASE,PLEASE TRY AGIAN LATER !";
exit();(判断返回的classid值是否为0,若是则输出警告,并且退出程序。)
}
【无效SQL的时候是返回FALSE,如果SQL查询结果为空(语句是有效的),仍然是会返回有效的ID,检测是否查询到数据、查询到多少数据要用mysql_fetch_*函数的结果进行检测。一般的思路:$sql='xxx你的SQL语句xxxx';$res=mysql_query($sql);if ($res){ $row=mysql_fetch_array($res); mysql_free_result($res); if ($row) echo "查询到的第一条数据:".$row[0]; else echo "没有满足条件的数据。";} else echo "执行 $sql 错误:".mysql_error();】

5、mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。
while() { echo $arr[name]."<br><hr>";}$arr有值,那么就一直是true不死循环才怪,$arr=mysql_fetch_array($query)这样写每次循环后mysql_fetch_array($query)都会指向下一条记录,到最后一条后再指向null的,这样就停止循环了
