yii 跨mysql & oracle 实现同表数据同步解决方案

只限数据,不涉及其它。

oracle 数据库ar使用

参考:http://blog.martoo.cn/?p=459

oracle 编码注意事项

编码需要在connectionString 后指定 .charset

直接配置charset 无效..

		'odb'=>array(
			'class'=>'CDbConnection',
            'connectionString'=>'oci:dbname=//xxxxxxx/xxx;charset=utf8;',
            'username'=>'xxxx',
            'password'=>'xxxx',
         	'charset'=>'utf8',
            'tablePrefix'=>'xxx_'
		),

 

需要明白一个点。任何业务流程操作后,最终只在数据这块同步。

所以yii 原ar的修改只需要在save 动作之后,同步数据。

即afterSave 事件处理.

demo:

	
	public function afterSave(){
		if($this->hasEventHandler('onAfterSave'))
			$this->onAfterSave(new CEvent($this));
		$omodel= OUser::model()->findByPk($this->getPrimaryKey());
		if(!$omodel){
			$omodel=new OUser();
		}else{
		}
                //因为大小写问题。这里将key $item=array_change_key_case($this->getAttributes(false), CASE_UPPER); 进行该处理
		$omodel->setAttributes($this->getAttributes(false),false);
		$omodel->save();
	}

 

补充yii 相关版本插入异常问题:

QQ Photo20140318091839

 

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

发表评论

电子邮件地址不会被公开。 必填项已用*标注