帝國CMS擴充SQL程式編寫介紹


基本範例:
# 說明:下面例子都是以PHP檔案放在系統根目錄為基準。

範例1:連接MYSQL程式。 (a.php)
<?php
#require('e/class/connect.php');        //引入資料庫設定檔和公用函數檔案
require('e/class/db_sql.php');        //引入資料庫作業檔案
$link=db_connect();                //連接MY
$query); //聲明數據庫操作類

db_close();                        //關閉MYSQL鏈接
$empire=null;                        //註消操作類變量
?>


範例2:操作MYSQL資料的程式。 (b.php)
<?php
#require('e/class/connect.php');        //引入資料庫設定檔和公用函數檔案
require('e/class/db_sql.php');        //引入資料庫作業檔案
$link=db_connect();                //連接MY
$query); //宣告資料庫操作類別

$empire->query("update {$dbtbpre}ecms_news set onclick=onclick 1");        //給新聞表的點擊數加1

# 。

範例3:讀MYSQL資料的程式。 (c.php)
<?php
#require('e/class/connect.php');        //引入資料庫設定檔和公用函數檔案
require('e/class/db_sql.php');        //引入資料庫作業檔案
$link=db_connect();                //連接MY
$query); //宣告資料庫操作類別

$sql=$empire->query("select * from {$dbtbpre}ecms_news order by newstime limit 10");        //查詢新聞表   //查詢最新10筆記錄
while($r=$empire->fetch($sql))        //循環取得查詢記錄
{
        echo"標題:".$r['title']."<br>" ;
}

db_close();                        //關閉MYSQL連結
$empire=null;   
#


/e/class/db_sql.php檔案中資料庫操作類別常用的函數說明:
1、執行SQL函數:
$empire->query("SQL語句");
$empire->query1("SQL語句");

說明:
執行成功返回true,執行不成功回傳false ;
兩者差異是:query()出錯直接中斷程式執行,query1()出錯不中斷程式執行。

使用範例:
$sql=$empire->query("select * from {$dbtbpre}ecms_news");

2、循環讀取資料庫記錄函數:
$empire->fetch($sql)

說明:
$sql為query執行SQL回傳的結果。

使用範例:
$sql=$empire->query("select * from {$dbtbpre}ecms_news");
while($r=$empire->fetch($ sql))
{
        echo"標題:".$r['title']."<br>";
}

#3、讀取單一資料庫記錄函數:(不循環)
$empire->fetch1("SQL語句")

使用範例:
$r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");
echo"標題:".$r['title'];

4、統計SQL查詢記錄數函數:
$empire->num("SQL語句")
$empire->num1($sql)

說明:
兩者的差異是:num()直接寫SQL語句,而num1()中的$sql為query執行SQL回傳的結果。

使用範例:
$num=$empire->num("select id from {$dbtbpre}ecms_news");
echo"新聞表共有".$num." 則新聞";

5、統計SQL查詢記錄函數2:(相對於num更有效率的函數)
$empire->gettotal("統計SQL語句");

說明:
gettotal()和num()的差別是:gettotal()採用SQL本身的count(*)函數來統計,而num()是採用PHP本身的函數,gettotal( )更有效率一些。
gettotal()裡的統計數字一定要as total,如:「count(*) as total」。

使用範例:
$num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");
echo"新聞表共有".$ num." 則新聞";

6、取得剛插入表的自增ID值函數:
$empire->lastid()

使用範例:
$empire->query("insert into {$dbtbpre}ecms_news(title) values('標題')");
$lastid=$empire->lastid();
echo"剛插入的資訊ID為:".$lastid;

7、行動SQL查詢結果記錄指標:
$empire->seek($sql,$pit )

說明:
$sql為query執行SQL傳回的結果,$pit為指標的偏移數。

使用範例:
$sql=$empire->query("select * from {$dbtbpre}ecms_news");
$empire->seek($sql,2);

8、釋放SQL查詢結果函數:(一般不需要使用)
$empire->free($sql)

說明:
$sql為query執行SQL回傳的結果。

使用範例:
$sql=$empire->query("select * from {$dbtbpre}ecms_news");
$empire->free($sql);