$insertCmd=Yii::app()->db->createCommand('INSERT INTO {{role_has_actions}} (role_id,action_key) VALUES ('.$this->getFormModel()->primaryKey.',:actionKey)');
$insertCmd->bindParam('actionKey',$actionKey);
$actionKey='BROWSE_ADMIN_LOG';
插入到数据库 action_key 的值是: "actionKey=BROWSE_ADMIN_LOG" ,我想这是最新svn更新后的一个bug~ 请qiang修正~
以下给出我的解决方案:
framework\db\CDbCommand.php
line: 199
if($this->_connection->enableParamLogging && ($pars=array_merge($this->_params,$params))!==array())
{
foreach($pars as $name=>$value)
$pars[$name]=$name.'='.$value;
$par='. Bind with parameter ' .implode(', ',$pars);
}
change to:
if($this->_connection->enableParamLogging && ($pars=array_merge($this->_params,$params))!==array())
{
$logPars=array();
foreach($pars as $name=>$value)
$logPars[$name]=$name.'='.$value;
$par='. Bind with parameter ' .implode(', ',$logPars);
}
qiang 没有用dao?
我想应该问题比较明确,应该是为了做日志时记录 "绑定名=绑定值",而将 params 的值也改变了,
所以,应该是另外建立一个新数组来给日志记录使用~
我也是猜测的~请qiang定夺 ![:)](http://www.yiiframework.com/forum/public/style_emoticons/default/smile.gif)
qiang
(Qiang Xue)
5
比较有意思,原来array_merge的结果能传递引用。已经fix了。谢谢。