婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 網(wǎng)站建設(shè) > 建站知識 > DedeCMS數(shù)據(jù)庫類常用函數(shù)說明

DedeCMS數(shù)據(jù)庫類常用函數(shù)說明

POST TIME:2017-11-13 00:55

昨天整理了一下自己在使用DedeCMS時常用到的一些數(shù)據(jù)庫類函數(shù),大致有以下幾種:

首先說一下數(shù)據(jù)庫類文件位置:/include/dedesql.class.php(mysql)/include/dedesqli.class.php(mysqli)

系統(tǒng)會自動載入 dedesql.class.php文件,并用$dsql = $db = new DedeSql(FALSE);初始化數(shù)據(jù)庫連接,因此我們不需要再單獨(dú)初始化這個類,可以直接用$dsql$db進(jìn)行操作。

DEDECMS提示:為了防止錯誤,操作完后不必關(guān)閉數(shù)據(jù)庫。

數(shù)據(jù)庫類中常用到的方法

1.獲取錯誤描述:

$error = $dsql->GetError();

返回值為錯誤描述信息

2.執(zhí)行一個不返回結(jié)果的SQL語句,如update,delete,insert

$result = $dsql->ExecuteNoneQuery($sql);

返回值為SQL語句是否執(zhí)行成功(TRUE/FALSE)

該方法可以用ExecNoneQuery()替代,它實(shí)際上執(zhí)行的也是ExecuteNoneQuery()

3.執(zhí)行一個返回影響記錄條數(shù)的SQL語句,如update,delete,insert

$result = $dsql->ExecuteNoneQuery2($sql);

與上面相比,它返回的是SQL語句影響的記錄數(shù),而不是布爾值

4.執(zhí)行一個SQL語句,返回前一條記錄或僅返回一條記錄

$result = $dsql->GetOne($sql);

即使你的SQL語句中沒有寫Limit,系統(tǒng)也會自動為其加上limit 0,1。

下面是GetOne()中為其加上limit的語句:

if(!preg_match("/LIMIT/i",$sql)) $this->SetQuery(preg_replace("/[,;]$/i", '', trim($sql))." LIMIT 0,1;");

5.執(zhí)行條件查詢(select)語句

$dsql->SetQuery($sql);
$dsql->Execute();
while($arr = $dsql->GetArray()){
    //這里對查詢結(jié)果進(jìn)行操作
}

上面的寫法可以簡化為:

$dsql->Execute("me",$sql);
while($arr = $dsql->GetArray()){
    //這里對查詢結(jié)果進(jìn)行操作
}

GetArray()的定義(Line:383)

function GetArray($rsid="me",$acctype=MYSQL_ASSOC);

其中”me”($rsid)被稱為記錄集游標(biāo),用來區(qū)分不同的查詢,當(dāng)$rsid為”me”的時候,GetArray()的參數(shù)可以省略,否則必須給出參數(shù)$rsid。如:

$dsql->Execute("q1",$sql1);
while($arr = $dsql->GetArray("q1")){
    $dsql->Execute("q2",$dsql2);
    while($arr2 = $dsql->GetArray("q2")){
        //這里對查詢結(jié)果進(jìn)行操作
    }
}

6.檢查某數(shù)據(jù)表是否存在

$result = $dsql->IsTable($tbname);

返回值為布爾值

7.獲取MySql的版本號

$version = $dsql->GetVersion($isformat=TRUE)

返回值為雙精度浮點(diǎn)數(shù)

8.獲取查詢的總記錄數(shù)

$num = $dsql->GetTotalRow($rsid="me");

9.獲取上一步INSERT操作產(chǎn)生的ID

$id = $dsql->GetLastID();

10.釋放記錄集占用的資源

$dsql->FreeResult($rsid="me");//(釋放游標(biāo)為"me"的記錄集資源)
$dsql->FreeResultAll();//(釋放所有記錄集資源)

11.設(shè)置SQL語句,會自動把SQL語句里的dede_替換為$this->dbPrefix(在配置文件中為$cfg_dbprefix)

$dsql->SetQuery($sql);
$dsql->SetSql($sql);//(功能一樣)

12.重新選擇要操作的數(shù)據(jù)庫

$dsql->SelectDB($dbname);

13.獲取數(shù)據(jù)庫連接標(biāo)識

$dsql->linkID;

獲取這個連接標(biāo)識后,可以直接用mysql相關(guān)函數(shù)進(jìn)行數(shù)據(jù)庫操作,在非不得已情況,項(xiàng)目中一般不使用這個變量。



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 昂仁县| 大荔县| 曲水县| 阳江市| 四会市| 墨脱县| 廉江市| 元阳县| 西藏| 石渠县| 彝良县| 资溪县| 汕尾市| 仲巴县| 佳木斯市| 肃宁县| 龙江县| 宣威市| 南江县| 隆化县| 玉田县| 五莲县| 德钦县| 宝兴县| 宜章县| 辰溪县| 天津市| 渑池县| 高淳县| 富民县| 榆社县| 马尔康县| 南陵县| 仁寿县| 廊坊市| 黑河市| 杭锦后旗| 扶绥县| 兖州市| 长沙市| 含山县|