dedecms $dsql

在众多内容管理系统中,DedeCMS(织梦内容管理系统)因其高效、易用而备受青睐。其中,$dsql(织梦数据库查询)是DedeCMS的核心技术之一,它让网站开发变得简单而高效。本文将深入解析DedeCMS $dsql,帮助开发者更好地理解和应用这一强大工具。

一、DedeCMS简介

让我们简单了解一下DedeCMS。DedeCMS是一款基于PHP+MySQL的开源内容管理系统,它自2004年发布以来,凭借其稳定、易用的特点,已经成为国内最受欢迎的CMS之一。DedeCMS拥有丰富的功能模块,如文章管理、产品展示、图片展示、留言板等,非常适合企业、个人网站的使用。

二、$dsql的作用

$dsql是DedeCMS的核心数据库查询类,它封装了数据库操作的相关方法,使得开发者可以轻松地进行数据库操作。下面,我们来详细了解$dsql的作用和特点。

1. 简化数据库操作

(表格1:$dsql常用方法及其功能

方法名称 功能描述
Query 执行查询语句,返回查询结果集
FetchOne 获取查询结果集中的第一条记录
FetchRow 获取查询结果集中的当前行数据
Execute 执行非查询语句(如INSERT、UPDATE、DELETE等)
GetOne 返回查询结果集中第一条记录的某个字段值
GetAll 返回查询结果集中所有记录
GetField 返回查询结果集中所有记录的某个字段值
GetFields 返回查询结果集中所有记录的指定字段值

通过$dsql提供的方法,开发者可以轻松地执行SQL语句,无需手动编写复杂的数据库操作代码。

2. 提高安全性

(表格2:$dsql安全性特点

安全性特点 描述
防SQL注入 通过自动转义特殊字符,防止SQL注入攻击
防XSS攻击 对输出内容进行编码,防止XSS攻击
防病毒传播 系统定期更新,修复潜在的安全漏洞

$dsql内置了多种安全特性,可以有效防止SQL注入、XSS攻击等安全问题。

3. 支持多种数据库

$dsql支持多种数据库,包括MySQL、SQL Server、SQLite等,开发者可以根据实际需求选择合适的数据库。

三、$dsql的使用方法

下面,我们通过一个简单的例子,展示如何使用$dsql进行数据库操作。

(示例:获取文章列表

“`php

// 创建$dsql对象

$dsql = new DedeSql();

// 设置数据库连接信息

$dsql->SetDatabase(0, ‘localhost’, ‘root’, ‘123456’);

// 编写查询语句

$sql = “

dedecms 列表点击加载更多读取数据库内容怎么实现

使用方法:

1、加载是用AJAX,需要先引用jQuery

2、模板在arcajax.php第二十八行请自行按需修改

3、arcajax.php放到plus目录下

HTML和js代码:

<divid=”loading27″>加载中</div>

<ahref=”javascript:;”id=”getMore”pnum=”2″class=”index-morebgwmt15″>浏览更多案例……</a>

<scripttype=”text/javascript”>

$(“#getMore”).click(function(){

var_this=$(this),

pnum=_this.attr(“pnum”),//分页码

typeid=1;//栏目ID

if(pnum==0){

returnfalse;

}

$(“#loading27”).show();

$.ajax({

url:'/plus/arcajax.php',

data:{typeid:typeid,pnum:pnum},

success:function(data){

if(data!=''){

$(“.index-list”).append(data);//数据显示到页面

_this.attr(“pnum”,Number(pnum)+1);//分页+1

}else{

_this.text(“没有更多的数据”);

_this.attr(“pnum”,0)

}

$(“#loading27”).hide();

}

})

returnfalse;

})

</script>

PHP代码(arcajax.php):

<?php

require_once(dirname(__FILE__).”/../include/common.inc.php”);

require_once(DEDEINC.'/channelunit.class.php');

require_once(DEDEINC.'/taglib/arcpagelist.lib.php');

$pnum=empty($pnum)?0:intval(preg_replace(“/[^\d]/”,'',$pnum));

$typeid=empty($typeid)?0:intval(preg_replace(“/[^\d]/”,'',$typeid));

if($typeid==0||$pnum==0)die(“RequestError!”);

if($typeid>0)

{

$titlelen=AttDef($titlelen,30);

$infolen=AttDef($infolen,160);

$imgwidth=AttDef($imgwidth,120);

$imgheight=AttDef($imgheight,120);

$listtype=AttDef($listtype,'all');

$arcid=AttDef($arcid,0);

$channelid=AttDef($channelid,0);

$orderby=AttDef($orderby,'default');

$orderWay=AttDef($order,'desc');

$subday=AttDef($subday,0);

$line=$row;

$artlist='';

//通过页面及总数解析当前页面数据范围

$strnum=($pnum-1)*12;

$limitsql=”LIMIT$strnum,12″;

$innertext='<li[field:globalname=”autoindex”runphp=”yes”]if(@me%3==0)@me=\'class=”mrnone”\';else@me=””;[/field:global]>

<div><ahref=”[field:arcurl/]”title=”[field:title/]”><imgsrc=”[field:litpic/]”width=”278″height=”245″></a></div>

<h3><ahref=”[field:arcurl/]”title=”[field:title/]”>[field:title/]</a></h3>

<p>[field:descriptionfunction=”cn_substr(@me,150)”/]</p>

<spanclass=”more”><ahref=”[field:arcurl/]”>浏览案例</a></span>

</li>';//模板

//处理列表内容项

$query=”SELECTarc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,

tp.moresite,tp.siteurl,tp.sitepathFROM`#@__archives`arcLEFTJOIN`#@__arctype`tpONarc.typeid=tp.id

WHEREarc.typeidIN(“.GetSonIds($typeid).”)ORDERBYarc.sortrankdesc$limitsql”;

$dsql->SetQuery($query);

$dsql->Execute('al');

$dtp2=newDedeTagParse();

$dtp2->SetNameSpace('field','[',']');

$dtp2->LoadString($innertext);

$GLOBALS['autoindex']=0;

$ids=array();

for($i=0;$i<12;$i++)

{

for($j=0;$j<1;$j++)

{

if($row=$dsql->GetArray(“al”))

{

$ids[]=$row['id'];

//处理一些特殊字段

$row['info']=$row['infos']=cn_substr($row['description'],$infolen);

$row['id']=$row['id'];

if($row['corank']>0&&$row['arcrank']==0)

{

$row['arcrank']=$row['corank'];

}

$row['filename']=$row['arcurl']=GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],

$row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);

$row['typeurl']=GetTypeUrl($row['typeid'],$row['typedir'],$row['isdefault'],$row['defaultname'],$row['ispart'],

$row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);

if($row['litpic']=='-'||$row['litpic']=='')

{

$row['litpic']=$GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';

}

if(!preg_match(“#^http:\/\/#”,$row['litpic'])&&$GLOBALS['cfg_multi_site']=='Y')

{

$row['litpic']=$GLOBALS['cfg_mainsite'].$row['litpic'];

}

$row['picname']=$row['litpic'];

$row['stime']=GetDateMK($row['pubdate']);

$row['typelink']=”<ahref='”.$row['typeurl'].”'>”.$row['typename'].”</a>”;

$row['image']=”<imgsrc='”.$row['picname'].”'border='0'width='$imgwidth'height='$imgheight'alt='”.preg_replace(“#['><]#”,””,$row['title']).”'>”;

$row['imglink']=”<ahref='”.$row['filename'].”'>”.$row['image'].”</a>”;

$row['fulltitle']=$row['title'];

$row['title']=cn_substr($row['title'],$titlelen);

if($row['color']!='')$row['title']=”<fontcolor='”.$row['color'].”'>”.$row['title'].”</font>”;

if(preg_match('#b#',$row['flag']))$row['title']=”<strong>”.$row['title'].”</strong>”;

//$row['title']=”<b>”.$row['title'].”</b>”;

$row['textlink']=”<ahref='”.$row['filename'].”'>”.$row['title'].”</a>”;

$row['plusurl']=$row['phpurl']=$GLOBALS['cfg_phpurl'];

$row['memberurl']=$GLOBALS['cfg_memberurl'];

$row['templeturl']=$GLOBALS['cfg_templeturl'];

if(is_array($dtp2->CTags))

{

foreach($dtp2->CTagsas$k=>$ctag)

{

if($ctag->GetName()=='array')

{

//传递整个数组,在runphp模式中有特殊作用

$dtp2->Assign($k,$row);

}else{

if(isset($row[$ctag->GetName()]))$dtp2->Assign($k,$row[$ctag->GetName()]);

else$dtp2->Assign($k,'');

}

}

$GLOBALS['autoindex']++;

}

$artlist.=$dtp2->GetResult().”

“;

}//ifhasRow

else{

$artlist.='';

}

}//LoopCol

}//loopline

$dsql->FreeResult(“al”);

}else

{

die(“RequestError!”);

}

AjaxHead();

echo$artlist;

exit();

dedecms数据库,用php调用sql最新文章

这是我之前写的一个类,和你的需求基本一样,你拿去自己改改吧

<?php

$GLOBALS['web_channel_dir']='dir/inc';

//设置系统根路径

define('WEB_ROOT',$GLOBALS['web_channel_dir']? substr(dirname(__FILE__), 0,- strlen($GLOBALS['web_channel_dir'])): dirname(__FILE__).'/');

abstract class BaseDataQuery

{

/*

*构造方法

*/

function __construct($pid,$cid,$xid)

{

if(!file_exists(WEB_ROOT.'data/common.inc.php'))

{

echo”配置错误”;

exit();

}else{

require_once WEB_ROOT.'data/common.inc.php';

}

$this->cfg_dbhost=$cfg_dbhost;

$this->cfg_dbname=$cfg_dbname;

$this->cfg_dbuser=$cfg_dbuser;

$this->cfg_dbpwd=$cfg_dbpwd;

$this->cfg_dbprefix=$cfg_dbprefix;

$this->cfg_db_language=$cfg_db_language;

$this->link=$this->connect();

}

function connect()

{

//global$link,$host,$dbuser,$dbpasswd,$db;

$link= mysql_connect($this->cfg_dbhost,$this->cfg_dbuser,$this->cfg_dbpwd) or

die(“Could not connect:”. mysql_error().””.$sql);

mysql_select_db($this->cfg_dbname);

mysql_query(“SET NAMES UTF8”);//设置数据库的要查询结果的字符集

return$link;

}

function Query($sql)

{

if(!$this->link)

$this->link=$this->connect();

$result= mysql_query($sql,$this->link) or

die(“Could not query:”. mysql_error().””.$sql);

return$result;

}

function getAll($sql)

{

$res=$this->Query($sql);

if($res!== false)

{

$arr= array();

while($row= mysql_fetch_assoc($res))

{

$arr[]=$row;

}

return$arr;

}

else

{

return false;

}

}

function getAll_cache($sql)

{

$res=$this->Query($sql);

if($res!== false)

{

$arr= array();

while($row= mysql_fetch_assoc($res))

{

$arr[]=$row;

}

return$arr;

}

else

{

return false;

}

}

function getOne($sql,$limited= false)

{

if($limited== true)

{

$sql= trim($sql.' LIMIT 1');

}

$res=$this->Query($sql);

if($res!== false)

{

$row= mysql_fetch_row($res);

if($row!== false)

{

return$row[0];

}

else

{

return'';

}

}

else

{

return false;

}

}

/**

*得到子栏目ID

*$reid上线id

*/

function get_child($reid)

{

$child_sql=”SELECT id FROM dede_arctype WHERE reid=”.$reid;

$res=$this->getAll($child_sql);

if(empty($res)){

return$reid;

}

foreach($res AS$row)

{

if(!empty($row['id']))

{

$arr[]=$row['id'];

$this->get_child($row['id']);

}

}

$str= join(“,”,$arr);

return$str;

}

/**

*得到子栏目名称与id

*$reid上级id

*/

function get_child_name($reid)

{

$child_sql=”SELECT id,typename,reid FROM dede_arctype WHERE reid=”.$reid;

$res=$this->getAll($child_sql);

return$res;

}

function get_ic_name($id)

{

$child_sql=”SELECT typename FROM dede_arctype WHERE id=”.$id;

$res=$this->getAll($child_sql);

return$res;

}

/*

*数据查询

*$flag(需要查询的标记例头条[h]推荐[c]幻灯[f]特荐[a]滚动[s]加粗[b]图片[p]跳转[j])

*$typeid需要查询的栏目id(22,23,24,25)

*$len需要查询的数据长度如果$len是数据就是limit 1,100形式如果是字符就是limit 100如果$len不存就是不限止条数

**/

function query_data($queryInfo)

{

$queryInfo['flag']?$flag=$queryInfo['flag']:$flag= false;

$typeid=$queryInfo['typeid'];

$queryInfo['len']?$len=$queryInfo['len']:$len= false;

$field=$queryInfo['field'];

$queryInfo['order']?$order=$queryInfo['order']:$order= false;

$queryInfo['channel']?$channel=$queryInfo['channel']:$channel= false;

$queryInfo['where']?$where=” AND”.$queryInfo['where']:$where=””;

$queryInfo['typeid2']?$typeid2=”AND typeid2 in(“.$queryInfo['typeid2'].”)”:$typeid2=””;

$queryInfo['table']?$table=$queryInfo['table']:$table=”dede_archives”;

//定义查询数据标识(头条,图片,推荐)

if($flag)

{

$flag=”and find_in_set('$flag',flag)”;

}else{

$flag=””;

}

//查询条数

if($len)

{

if(is_array($len))

{

$len=”limit”.$len[0].”,”.$len[1];

}else{

$len=”limit 0,”.$len;

}

}else{

$len=””;

}

//定义排序条件

if(isset($order)&& is_array($order))

{

$orderarr= array();

foreach($order as$key=>$value)

{

$orderarr[]=$key.””.$value;

}

$orderstr= join(“,”,$orderarr);

}

elseif($order=='rand')

{

$orderstr=” rand(),id desc”;

}

elseif($order!='')

{

$orderstr=$order;

}

else

{

$orderstr=”pubdate desc”;

//$orderstr=$order;

}

//定义查询模型

if($channel)

{

$channel=”AND channel=”.$channel;

}elseif($channel==”null”){

$channel=””;

}

else

{

$channel=”AND channel= 1″;

}

//定义查询字段

if($field)

{

if(is_array($field))

{

$field= join(“,”,$field);

}

$sql=”select”.$field.” from”.$table.” WHERE arcrank>-1 and typeid in(“.$typeid.”)”.$typeid2.$flag.””.$channel.”$where ORDER BY”.$orderstr.””.$len;

}else{

//根剧栏目查询新闻

$sql=”select id,title,pubdate from”.$table.” WHERE arcrank>-2 and typeid in(“.$typeid.”)”.$typeid2.$flag.””.$channel.”$where ORDER BY”.$orderstr.””.$len;

//echo”<br/>”;

}

if($queryInfo['debug']){

$debugstr=”this is Debug:[$sql ]”;

return$debugstr;

}

$result=$this->getAll($sql);

return$result;

}

}

dedecms如何去掉首页index.html的方法

dedecms如何去掉首页index.html出现的原因是动态PHP转换为静态html的原因,去除方法如下:

第一种、伪静态设置代码,具体操作如下:

在主机里面找到伪静态文件.htaccess,下载到本地,用编辑器打开,在里面加入以下代码DirectoryIndex index.html index.php index.htm然后在上传至主机。

第二种、在网站虚拟主机里面把网站默认首页index.html放到index.php前面,具体如下图:

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享