gpt4 book ai didi

mysql - Zend_Db 使用多个数据库?

转载 作者:行者123 更新时间:2023-11-29 14:47:59 25 4
gpt4 key购买 nike

有没有办法可以使用 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 做到这一点?

最佳答案

我在 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']);

关于mysql - Zend_Db 使用多个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6467294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com