Dedecms二次开发sql数据库类详解(2)

这个说明我们查询dede_test这个表id为3的数据成功了,返回了一个$row数组,其中就存放了字段的值.
当然我们可以用echo $row['name'];或者$row['id']来输出我们查询出来的结果
Tip:其实我们可以深入的研究下dedesql.class.php这个类,258行就有这个方法:


//执行一个SQL语句,返回前一条记录或仅返回一条记录 function GetOne($sql='',$acctype=MYSQL_ASSOC) { global $dsql; if($dsql->isClose) { $this->Open(false); $dsql->isClose = false; } if(!empty($sql)) { if(!eregi("limit",$sql)) $this->SetQuery(eregi_replace("[,;]$",'',trim($sql))." limit 0,1;");//这里用正则看看limit是否存在,如果不存在的话就自动加上limit 0,1这个内容,关于limit的介绍可以去看看SQL关于这个的介绍 else $this->SetQuery($sql); } $this->Execute("one"); $arr = $this->GetArray("one",$acctype); if(!is_array($arr)) { return ''; } else { @mysql_free_result($this->result["one"]); return($arr);//清空资源,返回这个数组 } }  
3.深入查询,继续研究SELECT

 

}

 


刚才讲了查询一条记录,其实这个查询一条记录可以理解为我们内容页查询一篇文章,只是获取单条记录并将内容显示出来,但往往我们经常遇到的是查询列表,及{dede:arclist/}或者{dede:list/},查询列表的话涉及到查询多条记录.
继续修改代码:
test.php

 

------------------------------- <?php require_once (dirname(__FILE__) . "/include/common.inc.php"); if($dsql->IsTable('dede_test')){ //如果存在dede_test表 //------------------- //| 查询一条记录 | //| GetOne() | //------------------- // ↓ $row = $dsql->GetOne("SELECT * FROM dede_test WHERE id = 3"); echo "查询id=3的记录:<br />显示结果:"; print_r($row); //------------------- //| 查询多条记录 | //| Execute() | //------------------- // ↓ echo "<hr />查询dede_test表中的所有记录:<br />显示结果:<br />"; $sql = "SELECT * FROM dede_test"; $dsql->Execute('me',$sql); while($arr = $dsql->GetArray('me')) { echo "id = {$arr['id']} ,name = {$arr['name']}<br />"; } } ?> --------------------------------
 

 

我们运行test.php看到显示以下的内容:
查询dede_test表中的所有记录:
显示结果:
id = 1 ,name = 测试名字1
id = 2 ,name = 这是第二个
id = 3 ,name = 第三个喽
id = 4 ,name = 第四个
这个说明我们已经成功将表dede_test中的数据输出,当然主要是执行了那个"SELECT * FROM dede_test",这是一个最简单的sql查询语句,当然也能够用到order by这些排序或者条件去查询,详细可以参考sql相关内容.
同时这里需要说明的是这里除了用$dsql->GetArray('me')来获取内容到数组,还可以用$dsql->GetObject("me")获取内容到对象,不过调用方法有些不同:
主要这里通过$dbobj->fieldname来调用查询出来的数据

while($dbobj = $dsql->GetObject('me')) { echo "id = {$dbobj->id} ,name = {$dbobj->name}<br />"; }  

 

 

tips:这里查询完了其实还可以用$dsql->GetTotalRow("me")来获取下查询出来的总数.    

4.插入删除,也要用到SQL
上面我们介绍了如何用dsql来查询数据,主要有获取单条记录和获取多条记录2种,接下来我们来了解下使用dsql其他特性来为我们的test.php加入添加内容和删除内容的功能.
先来了解下插入数据库的操作,我们先做一个表单,这个表单用于提交数据name的.表单代码如下:
<hr />
用于提交数据的表单:<br />

 

<form action="test.php" type="post"> <input type="hidden" name="dopost" value="save"> 名称:<input type="text" name="name" value=""> <input name="提交" type="submit" value="提交"> </form>
 

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/db62052f6a7e0a8c6d1048793f2ef432.html