有没有办法可以使用Zend_Db进行更新并插入多个(两个)数据库? 例如,
UPDATE database1.tableA AS a1, databse2.tableA as a2 SET a1.content = a2.content WHERE a1.id = a2.id
我如何使用Zend_Db_Adapter_Pdo_Mysql
?
答案 0 :(得分:1)
我在application.ini文件中定义了多个数据库
我使用过这样的东西:
// REGISTRY
Zend_Registry::set('configuration', $configuration);
foreach($configuration->database as $type => $database){
$db[$type] = Zend_Db::factory(
$database
);
}
Zend_Registry::set('db', $db);
创建模型后,您可以在模型构造函数中指定所需的数据库
$newModel = Model_NewModel($db['db_key_name']);
您有3个选项,您可以手动编写自己的对象以扩展Zend_Db_Table_Abstract并具有多数据库更新功能
/* the code for this example is pseudo code, so it probably wont work but the concept is still good */
class Model_NewModel extends MoakCustomDbClass{
function multi_db_update($db1, $db2, $update, $where)
{
$originalDb = $this->_db;
$this->_db = $db1;
$this->update($update, $where);
$this->_db = $db2;
$this->update($update, $where);
$this->_db = $originalDb;
}
}
,通过调用
编写自己的自定义查询$newModel->query('UPDATE QUERY');
或运行两个指向不同数据库的模型
$newModelA = Model_NewModel($db['db_key_name_A']);
$newModelB = Model_NewModel($db['db_key_name_B']);