SP多数据库选择的问题
发布于:2022-01-17 09:50:54
#1 ltotal
$db2 = spClass('db_'.$GLOBALS['G_SP']['db']['driver'], array(0 => $GLOBALS['G_SP']['db2']), $GLOBALS['G_SP']['db_driver_path'], TRUE);
$mRegexp->_db = $db2;
$mRegexp->create(array('name' => 111, 'value' => 222));
切换数据库录入数据时,直接报
DESCRIBE rz_regexp
执行错误:把第一句代码最后的 TRUE 去掉就可以,但也实现不了切换别的库录入数据的目的了。
手册的写法,现在出错了,请问是什么原因?
数据库配置如下:
"db" => array(
'driver' => 'mysql',
'port' => 3306,
'host' => 'localhost',
'login' => 'root',
'password' => 'root',
'database' => 'rzcms',
'prefix' => ''
),
"db2" => array(
'driver' => 'mysql',
'port' => 3306,
'host' => 'localhost',
'login' => 'root',
'password' => 'root',
'database' => 'rzcms_bak',
'prefix' => ''
),
2012-01-05 13:44:18
#2 ltotal
。。。可以了,顺序问题,必须先生成可供切换的数据库实例,再实例化具体模型。。。
2012-01-05 13:50:47
#3 ltotal
$db = spClass('db_mysql', array($GLOBALS['G_SP']['db']), SP_PATH."/Drivers/mysql.php", TRUE);
$db2 = spClass('db_mysql', array($GLOBALS['G_SP']['db2']), SP_PATH."/Drivers/mysql.php", TRUE);
$mRegexp = spClass('mRegexp');
$mRegexp->_db = $db;
$mRegexp->create(array('name' => 111, 'value' => 222));
$mRegexp->_db = $db2;
$mRegexp->create(array('name' => 111, 'value' => 222));
现在是这样写,结果2条数据全部都插到 $db2 配置的数据库中去了,求解。。。
2012-01-05 14:10:26
#4 jake
测试过没有你说的情况!
建议你把$db和$db2都dump出来看看。看看配置和类。还有dump出mRegexp 看看
2012-01-05 15:08:40
#5 ltotal
$db1和$db2的dump出的结果是一样的,
db_mysql Object ( [conn] => Resource id 21 [arrSql] => Array ( [0] => SET NAMES GB2312 ) )
模型则是最基本的模型
class mRegexp extends spModel
{
public $pk = "id";
public $table = "rz_regexp";
}
刚试了
$db = spClass('db_mysql', array($GLOBALS['G_SP']['db']), SP_PATH."/Drivers/mysql.php", TRUE);
$mRegexp = spClass('mRegexp');
$mRegexp->_db = $db;
$mRegexp->create(array('name' => 111, 'value' => 222));
$db2 = spClass('db_mysql', array($GLOBALS['G_SP']['db2']), SP_PATH."/Drivers/mysql.php", TRUE);
$mRegexp->_db = $db2;
$mRegexp->create(array('name' => 111, 'value' => 222));
要这样写才行,有点奇怪。。。
2012-01-05 15:24:28