dedecms 数据库操作

dedecms

15-11-15 23:09:39

系统会自动载入 dedesql.class.php 文件,并用
$dsql = $db = new DedeSql(false);
进行初始化数据库连接,因此在工程所有文件中均不需要单独初始化这个类,可直接用 $dsql 或 $db 进行操作,为了防止错误,操作完后不必关闭数据库。

常用的方法:
1、执行一个非查询类型的SQL语句,如 insert 、create 、update 等
$rs = $db->ExecuteNoneQuery($sql);
返回值为是否执行成功。

2、执行一个非查询类型的SQL语句,并返回成功记录数
$rs = $db->ExecuteNoneQuery2($sql);

与上面相比,它返回的是影响的记录数,而不是布尔值

3、返回单个记录
$arr = $db->GetOne($sql);

$dsql 如果不带 limit ,系统会自动加上 limit 0,1

4、执行条件查询语句
$db->SetQuery($dsql);
$db->Execute();
while($arr = $db->GetArray())
{
}
可以简化为:
$db->Execute('me',$dsql);
while($arr = $db->GetArray())
{
}

'me' 为记录集游标,用于区分不同的查询,如:

$db->Execute('me',$dsql);
while($arr = $db->GetArray())
{
   $db->Execute('2',$dsql2);
   while($arr2 = $db->GetArray())
   {
      
   }
}
像这种情况必须指定一个值区分默认的'me'参数,否则会出错

$db->GetArray($rsid,$acctype) 参数
$rsid="me"
$acctype=MYSQL_ASSOC

在查询游标中读取数据还可以用
$db->GetObject($rsid="me");

返回的结果是用类结构表示的值。

5、获取上一个插入的自动递增主键id值
$db->GetLastID();

6、获得查询的总记录数
$db->GetTotalRow($rsid="me")

7、获得MySql的版本号
$db->GetVersion($isformat=true)
默认的情况下会转换成 x.xx 形式浮点数

8、析放某查询的资源

$db->FreeResult($rsid="me");

9、在数据库中是否存在某数据表
$db->IsTable($tbname)

10、重新选择要操作的数据库
$db->SelectDB($dbname);

11、获得数据库连接标识
$db->linkID
获得这个连接标识后,可以直接用mysql相关函数进行数据库操作
在非不得已的情况,项目中一般不使用这个变量。


----------------------------------------------------------------------

dede_archives   数据结构

id

typeid     栏目ID

typeid2 副栏目ID

sortrank 文档排序

flag 属性

ismake 是否生成HTML

channel 频道模型

click 点击次数

title 文档标题

shorttitle 短标题

writer 作者

source 来源

litpic 缩略图

pubdate 发布日期

description 描述

weight 权重