Joomla!-开源天空

2008-09-08
首页 专栏热点 Joomla! 应用 Joomla开发中怎样连接外部数据库


Joomla开发中怎样连接外部数据库

E-mail

如果你访问joomla的安装数据库,可以简单采用JFactory::getDBO 方法,这样就可以使用已经建立好的Joomla数据库的连接,就像这个例子一样:

<?php
$db = JFactory::getDBO();
?>

采用以上方法得到的$db是一个 JDatabase的实例,你可以执行数据库操作。


可是如果你需要访问的数据不在Joomla使用的数据库中,怎样访问外部数据库哪?这个数据库可能是同一台机器上的不同数据库,或者根本就不在同一台服务器上,甚至可能不是mysql数据库而需要其他的数据库驱动。

你可以通过JDatabase::getInstance方法而达到你的目的。

下面是一个连接外部数据库的例子

Connecting to an external database

<?php
$option['driver']   = 'mysql';            // 数据库驱动
$option['host']     = 'db.myhost.com';    // 数据库所在的主机
$option['user']     = 'fredbloggs';       // 用户
$option['password'] = 's9****';  // 密码
$option['database'] = 'bigdatabase';      // 数据库名字
$option['prefix']   = 'abc_';             // 数据库前缀(可以为空)

$db = & JDatabase::getInstance( $option );
?>

现在得到的$db是一个 JDatabase的实例,你可以执行通常的数据库操作。

要注意的是,如果数据库用了一个非标准的端口,你可以通过在主机名添加来指定,例如,如果你的mysql数据库在3307端口运行,那么你这样指定 ‘db.myhost.com:3307’.

这样做的一个好处是如果参数相同,再次调用JDatabase::getInstance将得到前次已经生成的JDatabase的实例,而不是新生成一个。

但是,参数必须完全相同。比如,如果你一次调用主机名是‘db.myhost.com’,而另一次调用是‘db.myhost.com:3306’,那么这时候将产生两个不同的JDatabase的实例,即使这两个主机实际上是相同的。

相关文章:
两个Joomla!即时通讯工具的扩展
收藏一篇关于Joomla! 1.5 routing的文章
绝对好文章,Joomla! API在前台程序执行顺序
Joomla中如何完整截取文章的部分内容
Joomla插件开发规范
Joomla源代码解析系列文章汇总
新增英文原版怎样用Joomla打造网站书籍
Joomla数据库中几个重要的数据表

发表您的文章评论

您的姓名 (昵称)
标题:
评分: 很差一般较好很好
评论:
验证码:
请输入验证码