thinkphp 多数据库连接操作

kevin.Zhu 发布于:2013-1-16 16:11 分类:Thinkphp  有 13 人浏览,获得评论 0 条  

最近,测试了一下thinkphp的多数据库连接,发现thinkphp官方文档上的多数据库连接无法运行成功,因此查找资料,终于运行成功:

1、如果数据库在同一个服务器上,则可以直接使用:

class MembersModel extends Model{
protected $trueTableName = ‘members.members’; //数据库名.表名(包含了前缀)
}
然后就可以像D(“Members”);这样实例化模型,像普通模型那样操作了。

2、数据库在不同的服务器上:

要建立多数据连接,首先要构造数据库配置参数。我想如果每次都在建立多数据库连接的时候都建立数据库配置数组,这样很麻烦,我还不如写在配置文件里。这里怎么写还是有点技巧的。

所以在配置文件里加入以下代码:

//我的第一个数据库连接

‘DB_CMSBBS’=>array(

‘dbms’ => ‘mysql’,

‘username’ => ‘root’,

‘password’ => ’123′,

‘hostname’ => ‘localhost’,

‘hostport’ => ’3306′,

‘database’ => ‘discuz’

),

这样我们可以用C(“DB_CMSBBS”)来得到数据库的配置数组。

具体代码:
                $content = new AdvModel();   //实例化一个空高级模型
		$content->addConnect(C('cms_database'),1);  //连接数据库
		$content->switchConnect(1);  //切换数据库连接
		$content->table("dz_news"); //设置操作的数据表
		$list=$content->limit(5)->select(); //查询
		$content->closeConnect(1);
当然,你也可以建立一个模型来进行操作。