好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 網站建設 > 建站知識 > DedeCMS數據庫類常用函數說明

DedeCMS數據庫類常用函數說明

POST TIME:2017-11-13 00:55

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

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

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

DEDECMS提示:為了防止錯誤,操作完后不必關閉數據庫。

數據庫類中常用到的方法

1.獲取錯誤描述:

$error = $dsql->GetError();

返回值為錯誤描述信息

2.執行一個不返回結果的SQL語句,如update,delete,insert

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

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

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

3.執行一個返回影響記錄條數的SQL語句,如update,delete,insert

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

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

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

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

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

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

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

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

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

上面的寫法可以簡化為:

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

GetArray()的定義(Line:383)

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

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

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

6.檢查某數據表是否存在

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

返回值為布爾值

7.獲取MySql的版本號

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

返回值為雙精度浮點數

8.獲取查詢的總記錄數

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

9.獲取上一步INSERT操作產生的ID

$id = $dsql->GetLastID();

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

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

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

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

12.重新選擇要操作的數據庫

$dsql->SelectDB($dbname);

13.獲取數據庫連接標識

$dsql->linkID;

獲取這個連接標識后,可以直接用mysql相關函數進行數據庫操作,在非不得已情況,項目中一般不使用這個變量。



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

  • 400-1100-266