既然我们要研究dedecms二次开发。对dedecms做很好的二次开发。那么我们就必须对dedecms的数据库操作类比较熟悉。dedecms的数据库操作类位于include/dedesql.class.php。这个文件是dedecms数据库操作类的核心。 dedecms数据库。我们先不讨论最深层次的东西。首先我们看dedecms中的最简单的sql查询。我们可以看到在dedecms数据库操作类的 function Execute($id="me", $sql='')代码,这个函数就是供给我们查询和执行SQL语句的。dedecms数据库类结果有个数据,通过$id来区分不同的返回的result的结果集合。有了结果结的数组下标分类标记,我们就很方便的可以在dedecms的sql中进行多层循环。 $dsql->Execute("f","select * from dede_arctype where reid=0");这个查询语句产生的结果将放到$result['f']中。$dsql->Execute("f1","select * from dede_arctype where reid='".$row['id']."'");这条语句查询的结果集将放在$result['f1']中。 如果某个页面需要执行的查询结果集不是很多。那么我们也可以使用缺省的变量来做结果结。那就是me。返回的结果结里面如果没有指明下标,那么将使用默认的$result['me']; 比如以下就是例子,查询dedecms文章分类的2级分类树。 $dsql->Execute("f","select * from dede_arctype where reid=0"); $tree = array(); while($row = $dsql->GetArray("f")){ $row['typelink']=GetOneTypeUrlA($row); $tree[$row['id']]['id'] = $row['id']; $tree[$row['id']]['typelink'] = $row['typelink']; $ar =array(); $dsql->Execute("f1","select * from dede_arctype where reid='".$row['id']."'"); while($row1=$dsql->GetArray("f1")){ $row1['typelink']=GetOneTypeUrlA($row1); $tree[$row1['reid']]['list'][] = $row1; } } 以上就是我们对dedecms数据库操作类分析示例总结。 来源:http://www.chinab4c.com |