系統會自動載入 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相關函數進行數據庫操作
在非不得已的情況,項目中一般不使用這個變量。
此文由 網站目錄_網站網址收錄與提交入口 編輯,未經允許不得轉載?。?!--首頁 > 站長文章 > 織夢cms » dedecms中數據庫類中常用方法-->