站长之家 - 站长资讯 - 易采站长站

当前位置: > 建站教程 > 源码教程 > 论坛程序 >

dedecms中数据库类中常用方法

2015-05-28 18:12 | 来源:网络整理 | 编辑:秋军 |

系统会自动载入 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'参数,否则会出错

代码实例:

<?php

$dsql->Execute('level1', "select * from function where parent_id=-1 and type='menu'");

while($row1=$dsql->GetArray('level1')){

if(!CheckPriv($row1['code']))continue;

echo "<h1 class=\"type\"><a href=\"".$row1['url']."\">".$row1['name']."</a></h1>\n";

echo "<div class=\"content\">\n<ul class=\"MM\">\n";

$dsql->Execute('level2', "select * from function where parent_id=".$row1['id']." and type='menu'");

while($row2=$dsql->GetArray('level2')){

if(!CheckPriv($row2['code']))continue;

echo "<li><a href=\"".$row2['url']."\" target=\"main\">".$row2['name']."</a></li>\n";

}

echo "</ul>\n</div>\n";

}

?>

$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相关函数进行数据库操作

在非不得已的情况,项目中一般不使用这个变量。

 

  • Discuz X2通过数据库批量替换修改帖子内容
  • Discuz数据库结构参考 方便二次开发
  • discuz 7.2论坛 用户名、密码、数据库名修改方法
  • Discuz论坛从X2升级到X2.5时陷入死循环的解决办法(图文教程)
  • 使用Discuz!后台备份和恢复Discuz!站点数据库的方法教程
  • 织梦DedeCMS新发布图集排序在最前的方法
  • 织梦DedeCMS模板防盗的方法
  • dedecms搜索页面调用自定义内容模型中的自定义字段的方法
  • dedecms教程:系统模型改成自动模型
  • 控制织梦dedecms自定义字段显示的内容长度
  • 网友评论

    关于我们 - 联系我们 - 广告服务 - 版权声明 - 人才招聘 - 友情链接 - 网站地图 - 帮助 - -

    CopyRight © 2010-2016 源码下载 easck.com , All Rights Reserved

    蒙公网安备 15052402000103号

    蒙ICP备14002389-1号