PHP World

首页 > CMS > PHPCMS › phpcms v9调用外部数据库的方法,如:Discuz的

phpcms v9调用外部数据库的方法,如:Discuz的

1、配置外部数据源(模块-->数据源-->外部数据源-->添加外部数据源)

1.png


注意这里的用户名和密码是mysql数据库的,而且都是必须填的,所以在创建数据库是必须要有密码。
datbase_name是外部数据库名。
discuz是你自己起的数据源名(在后面的get标签里面用到)。
3、测试链接如果成功就确定。
4、在模板中用get标签调用外部数据源discuz的数据。
5、例如:调用外部数据源discuz的所有帖子。

{pc:get sql="SELECT * FROM prefix_forum_thread where fid in('2','38','39') order by tid desc"" cache="3600"  dbsource="longxia_net" return="data" num="10"}
       {loop $data $key $val}
         {str_cut($val[subject],51,'')}     {/loop}
  {/pc}

说明:

prefix_forum_thread是外部数据源。
datbase_name对应的数据库ultrax里面的数据表。
subject是prefix_forum_thread表里的字段。
fid in (2, 38, 39) 为调用fid

总结:
(1)get标签调用外部数据库值之前必须要在phpcms v9后台配置(外部数据源)。
(2)数据库必须要有密码。

(3)如调用的外部数据库与本站是同一台数据库服务器, 服务器地址可直接用localhost;

(4)如调用的外部数据库与本站不是同一台数据库服务器,不可用localhost,要用另一台服务器的真实地址, 而且要注意有没有权限调用。

演示网站: www.xuyi.cn , www.xuyi.asia ; 从xuyi.cn调用xuyi.asia论坛的帖子。   由于这两个站用是同一台数据库服务器,所以可直接用localhost.


上边是Phpcms调用DZ论坛的帖子,我们也可以调用DZ文章, 方法如下:

                    南京新闻                              {pc:get sql="SELECT * FROM sqcb_portal_article_title order by aid desc"" cache="3600"  dbsource="www_suqiang_com" return="data" num="10"}
                                      {loop $data $key $val}
                   {str_cut($val[title],51,'')}                   {/loop}
                                   {/pc}

这里有个问题,我们是如何知道在调用文章url中的文章id时用aid,而不是tid呢?方法很简单,我们可用print_f()来查看。我们知道,我们可在phpcms模板中用{print_r($data)}来查看要测试的数据:

                    南京新闻                                              {pc:get sql="SELECT * FROM sqcb_portal_article_title order by aid desc"" cache="3600"  dbsource="www_suqiang_com" return="data" num="10"}
                   {print_r($data)}
                {/pc}

这样我样就可看出文章的id是用aid表示的了。

演示网站: www.suqiang.com , http://bbs.suqiang.com   

上一篇:返回列表

下一篇:如何启用PHPCMS V9 手机门户的手机网站?

相关文章