首页 > 技术交流 > dedecms二次开发常用mysql语句
dedecms二次开发常用mysql语句 2012-9-24
 在dedecms中系统会自动载入 dedesql.class.php 文件,并用 $dsql = $db = new DedeSql(false); 进行初始化数据库连接,因此在项目所有文件中均不需要单独初始化这个类,可直接用 $dsql 或 $db 进行操作。

常用的方法:

1、执行一个非查询类型的SQL语句,如 insert 、create 、update 等
[php]$rs = $db->ExecuteNoneQuery($sql); [/php]
返回值为是否执行成功的布尔值。

2、执行一个非查询类型的SQL语句,并返回成功记录数
[php]$rs = $db->ExecuteNoneQuery2($sql); [/php]
它返回的是影响的记录数,而不是布尔值

3、返回单个记录
[php]$arr = $db->GetOne($sql); [/php]
$dsql 如果不带 limit ,系统会自动加上 limit 0,1

4、执行条件查询语句
[php]
$db->SetQuery($dsql);
$db->Execute();
while($arr = $db->GetArray())
{
    statements;
}
[/php]

可以简化为:

[php]
$db->Execute('me',$dsql);
while($arr = $db->GetArray())
{
    statements;
}
[/php]

'me' 为记录集游标,用于区分不同的查询,如:
[php]
$db->Execute('me',$dsql);
while($arr = $db->GetArray())
{
    $db->Execute('2',$dsql2);
    while($arr2 = $db->GetArray())
        {
            statements;
        }
}
[/php]

像这种情况必须指定一个值区分默认的'me'参数,否则会出错
[php]
$db->GetArray($rsid,$acctype) 参数
$rsid="me"
$acctype=MYSQL_ASSOC
[/php]

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

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

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

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

7、获得MySql的版本号
[php]
$db->GetVersion($isformat=true)
[/php]

默认的情况下会转换成 x.xx 形式浮点数

8、析放某查询的资源

[php]$db->FreeResult($rsid="me"); [/php]

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

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

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

上一篇:dedecms如何增加自定义属性 下一篇:DedeCMS关键词替换内链问题较完美解决方案