> 帝国CMS二次开发手册 > 4-1帝国CMS扩展SQL程序编写介绍

帝国CMS扩展sql程序编写介绍


基本范例:
说明:下面例子都是以PHP文件放在系统根目录为基准。

例1:连接mysql程序。(a.php)
<?php
require('e/class/connect.php');        //引入数据库配置文件和公共函数文件
require('e/class/db_sql.php');        //引入数据库操作文件
$link=db_connect();                //连接MYSQL
$empire=new mysqlquery();        //声明数据库操作类

db_close();                        //关闭MYSQL链接
$empire=null;                        //注消操作类变量
?>


例2:操作MYSQL数据的程序。(b.php)
<?php
require('e/class/connect.php');        //引入数据库配置文件和公共函数文件
require('e/class/db_sql.php');        //引入数据库操作文件
$link=db_connect();                //连接MYSQL
$empire=new mysqlquery();        //声明数据库操作类

$empire->query("update {$dbtbpre}ecms_news set onclick=onclick+1");        //给新闻表的点击数加1

db_close();                        //关闭MYSQL链接
$empire=null;                        //注消操作类变量
?>


例3:读MYSQL数据的程序。(c.php)
<?php
require('e/class/connect.php');        //引入数据库配置文件和公共函数文件
require('e/class/db_sql.php');        //引入数据库操作文件
$link=db_connect();                //连接MYSQL
$empire=new mysqlquery();        //声明数据库操作类

$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);