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); 当然,你也可以建立一个模型来进行操作。