帝国CMS二次开发 – fetch()和fetch1()

22

接上一篇:帝国CMS二次开发 – 使用程序本身的SQL类

上一篇看了帝国sql 类中的query()和query1();接下来再看fetch()和fetch1();
下面介绍正确的写法和一些用处

fetch()

一般情况下我们用来,循环出列表或者列出多条信息;例如下面的例子取得会员组ID为1的所有会员ID和用户名;fetch()的参数是SQL语句执行的结果也就是先执行query();再把query()的执行结果作为参数给fetch()使用;

< ?php
include("../../class/connect.php");
include("../../class/db_sql.php");
$link=db_connect();
$empire=new mysqlquery();

//列出GROUPID=1的所有会员用户ID和用户名
$sql=$empire->query("select userid,username from {$dbtbpre}enewsmember where groupid=1");
while($r=$empire->fetch($sql)){
	echo $r[userid].'---'.$r[username].'';
}

db_close();
$empire=null;
?>

fetch1()

简单的说我们查询一条信息的时候才用它,比如获取USERID为1的会员资料;和fetch()不同的是fetch1()的参数是SQL语句而不是执行结果,所以在SQL语句不第二次使用的情况下直接进去就好了;fetch1()只取一条数据;

< ?php
include("../../class/connect.php");
include("../../class/db_sql.php");
$link=db_connect();
$empire=new mysqlquery();

//会员会员ID为1的资料
$r=$empire->fetch1("select userid,username from {$dbtbpre}enewsmember where userid=1 limit 1");
echo $r[userid].'';
echo $r[username].'';

db_close();
$empire=null;
?>

帝国CMS二次开发 – 使用程序本身的SQL类

22

简述:帝国CMS封装了一个SQL,文件位置是e/class/db_sql.php;使用程序本身的类库可以给我们的开发带来便利和效率;同时可以减少增设文件数量等;今天就和trylife一起了解下帝国CMS的SQL类和使用方法;

首先:做下准备工作

  • 1.在e目录下建立测试目录,例如我建立的是e/trylife/td-test/
  • 2.在1中目录下建立个PHP文件,例如我建立的是e/trylife/td/test-db_sql.php
  • 3.文件中写入代码如下
  • < ?php
    /*引用文件*/
    include("../../class/connect.php");
    include("../../class/db_sql.php");
    
    /*建立数据库链接 与 实例化类*/
    $link=db_connect();
    $empire=new mysqlquery();
    
                       /*中间的这个位置用于我们测试代码*/
    
    /*关闭数据库连接 与 释放类*/
    db_close();
    $empire=null;
    ?>
    

    ECMS二次开发 – 投稿流程的简单增设练习

    11

    接下来,使用简单的<?php  echo ‘你好’; ?>来对投稿流程中增设代码进行练习; 在下面的过程中将使用ECMS(帝国CMS)二次开发1 – 基本方式概述第三项,第三种方式:

    1.在如下目录e\trylife\MemberAddIonfo中建立文件fun.php,并写入如下代码

    
    



    2.在e/Doinfo/ecms.php中加入如下代码:

    require("../trylife/MemberAddIonfo/fun.php"); //20091110 trylife for test Maddinfo
    

    加好后参考如下:

    require("../class/connect.php");
    require("../class/db_sql.php");
    require("../trylife/MemberAddIonfo/fun.php"); //20091110 trylife for test Maddinfo
    



    3.在e/class/qinfofun.php DodoInfo()函数体内加入函数如下代码:

    TestMAddinfo(); //trylife add for test MaddInfo 20091110
    

    修改后参考如下:

    esetcookie("lastaddinfotime",time(),time()+3600*24);//设置最后发表时间
    			TestMAddinfo(); //trylife add for test MaddInfo 20091110
    			printerror("AddQinfoSuccess",$reurl,1);
    



    4.前台投稿,可以看到跳转链接的字了

    备注:
    1.这只是一个简单的测试,做完这一个流程后可以理解怎样增设功能
    2.echo 可以有跟踪代码的作用;当然用工具也可以;

    帝国CMS二次开发

    10

    更新中……

    主目录:

    1.1 帝国CMS二次开发 – 基本方式概述

    1.2 帝国CMS前台投稿流程

    1.3 帝国CMS次开发 – 投稿流程的简单增设练习

     

    示例:
    1.
    帝国CMS反馈发送邮箱文档

     

    附录资料:

    1.ECMS v6.0 Cookie及其管理员/会员登录信息获取

     

    帝国CMS获取用户登录信息 & Cookie

    27

    后台管理员(前缀+)
    Back-End:for Administrators(Back-End Prefixion+ )
    ecmsdodbdata:empirecms //
    eloginlic:empirecmslic //用户许可证书名称
    loginadminstyleid:1 //风格ID
    loginecmsckpass:e106107180eb2b343f5fcfc4acb569cdc //密码加密
    loginlevel:1 //组ID
    loginrnd:W2bng94vjyWAXfBuFKFq //认证码加密
    loginuserid:1 //用户ID
    loginusername:admin //用户名
    logintime:1256575463 //登陆时间UNIX时间戳



    前台会员(前缀+)
    Front-End:for members( Front-End Prefixion+ )
    mlgroupid:1 //会员组ID
    mlrnd:c9tVw6bXikEZ //RND认证加密
    mluserid:2 //会员ID
    mlusername:test //会员用户名



    在ECMS里怎样取得前台会员Cookie
    How can i get those Cookies