您当前的位置: 首页 > CMS教程 > 帝国CMS教程 > 帝国cms和discuz论坛系统跨数据库查询调用

帝国cms和discuz论坛系统跨数据库查询调用

作者:xiaoxiao 来源:未知 发布时间: 2013-10-16 11:23 点击:
现在大多数资讯类系统,一般站长都比较青睐php、mysql组合,这类cms系统中以dede和帝国更为普及,在帝国系统中调用论坛数据,这个应 用需求比较常见,cms和论坛系统使用同一数据库时,这样调用时,使用帝国论坛上提供的方法,如果是dede网站系统,使用dede的后台向导就

帝国cms和discuz论坛系统跨数据库查询调用

    现在大多数资讯类系统,一般站长都比较青睐php、mysql组合,这类cms系统中以dede和帝国更为普及,在帝国系统中调用论坛数据,这个应 用需求比较常见,cms和论坛系统使用同一数据库时,这样调用时,使用帝国论坛上提供的方法,如果是dede网站系统,使用dede的后台向导就可以直接 实现,但如果cms和论坛使用不同的数据库,前提是在同一服务器、同一mysql服务环境下,就不能直接调用了,这涉及到mysql用户的多数据库权限, 以及mysql的跨数据库查询问题。
  
  这个问题很久以前就曾经多次在帝国论坛咨询过,但没有具体实施方法,由于平常也不以帝国类网站为生,因此对这些问题还是建立在考虑可能性的层面,今日朋友又提此事,觉得也不算大的难题,就稍费点时间试一下。结果,完美成功。过程如下:
  
  假设:帝国cms数据库名为:ecms,用户名为:ecms_user,discuz论坛数据库名为:discuz,用户名为:discuz_user
  
  要在帝国网站中调用discuz论坛的当天最新贴,首先为discuz论坛添加帝国网站系统的用户访问权限,这里只添加查询(select)权限,确保安全。用root登陆phpmysql后,直接在sql中运行以下语句:
  
  GRANT select on discuz.* to ecms_user;
  
  这时就可以在帝国模板中添加灵动标签的论坛当天最新贴查询了:
  
  <table width="100%" border="0" cellspacing="0" cellpadding="1">
  
  [e:loop={"select tid,subject from discuz.cdb_threads order by tid desc limit 10",10,24,0}]
  
  <tr><td>
  
  <a href="<?=$bqr[tid]?>-1-1.html" target="_blank"><?=$bqr[subject]?></a>
  
  </td></tr>
  
  [/e:loop]
  
  </table>
  
  数据更新后查看,数据就生成了,这数据可是实在的标题和链接调用,不是一般的discuz论坛的js数据调用,不管对于页面加载速度和网站的优化来说,都有好处。
  
  注意上述语句的:
  
  <a href="<?=$bqr[tid]?>-1-1.html" target="_blank"><?=$bqr[subject]?></a>
  
  如果你没有加载论坛的伪静态效果,要替换为:
  
  <a href="?tid=<?=$bqr[tid]?>" target="_blank"><?=$bqr[subject]?></a>
  
  不然打开链接时就要出现“404页面”了。好这样就成功调用了。

分享到:
本文"帝国cms和discuz论坛系统跨数据库查询调用"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4