问题
今天写一个清理数据表的功能时,发现这些表分别在不同的数据库内,但是数据库配置配置项只有一个,于是我翻看的手册,才知道怎么用….
解决办法
原TP的配置项中:
return array( //'配置项'=>'配置值' 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => '127.0.0.1', // 服务器地址 'DB_NAME' => 'dl_adb_all', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '12345', // 密码 'DB_PORT' => '3306', //端口
看过手册才发现数据库的配置项可以有好多,我们可以在里面记录多个数据库的连接问题:
'DB_CONFIG2' => 'mysql://root:12345@localhost:3306/dl_ldb_1', 'DB_CONFIG3' => 'mysql://root:12345@localhost:3306/dl_ldb_1',
这样我们就可以使用传参的形式进行实例化:
$clear = new ClearModel('模型名','表前缀','数据库配置名');
当我们数据库配置名为空时,会自动找:
'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => '127.0.0.1', // 服务器地址 'DB_NAME' => 'dl_adb_all', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '12345', // 密码 'DB_PORT' => '3306', //端口
这一块我们不需要给他设置配置名,这样使用起来也比较方便.
设置好的配置完整的样子:
<? return array( //'配置项'=>'配置值' 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => '127.0.0.1', // 服务器地址 'DB_NAME' => 'dl_adb_all', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '12345', // 密码 'DB_PORT' => '3306', //端口 'DB_CONFIG2' => 'mysql://root:12345@localhost:3306/dl_ldb_1', 'DB_CONFIG3' => 'mysql://root:12345@localhost:3306/dl_ldb_all', 'DB_CONFIG4' => 'mysql://root:12345@localhost:3306/dl_ldb_2', ); );
这样就解决了多数据的问题了