tipask mysql调取dedecms_dedecms数据库,用php调用sql最新文章

展开全部

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

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

}

if($queryInfo['debug']){

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

return $debugstr;

}

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

return $result;

}

}

追问

哥们!太感谢了!!

我刚才把代码复制到dede根目录上,创建1.php 访问没有数据哦!!具体怎么设置啊??

追答

你自己改也是需要你读一遍代码的。__construct 的时候那三个参数不要,对你没用。

简单的说就是实例化后这类会去找DEDE数据配置信息用connect方法连到数据库上

用query_data方来查你要的数据。里面的参数都有是你查询的基本参数你可以动态设定

如果你连代码都不愿意读一次的话,估计没人帮的了你,除非你让别人来弄不是你自己弄。

本回答由提问者推荐

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值