adding more logs within cactiverecord,cdbcommand and cdbcommandbuilder:
class SiteController extends CController{
public function actionIndex(){
Yii::log(get_class($this).'/actionIndex to retrieve data from DB');
$coa = MST_COA::model()->findByPk(11);
//echo '<pre>';
//var_dump($coa);
//echo '</pre>';
Yii::log(get_class($this).'/actionIndex to modify data and save to DB');
$coa->description = 'Paid-in Capital:xx xx';
$coa->save();
echo 'Your account is: '.$coa->description;
}
}
results to:
2009/10/16 19:53:28 [info] [application] SiteController/actionIndex to retrieve data from DB
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createPkCriteria table->primaryKey =account_id
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createPkCriteria pk=Array
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createPkCriteria array content pk=11
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition $columnName is simple key.
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition $columnName=account_id
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition check foreach $values
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition value=11
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition $n===1 (count of values)
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition mst_coa
.account_id
=11
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createPkCriteria condition after $this->createInCondition =mst_coa
.account_id
=11
2009/10/16 19:53:28 [info] [application] SiteController/actionIndex to modify data and save to DB
2009/10/16 19:53:28 [info] [application] MST_COA/update to execute. Check pk account_id=11
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createPkCriteria table->primaryKey =account_id
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createPkCriteria pk=Array
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createPkCriteria array content pk=account_id
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition $columnName is simple key.
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition $columnName=account_id
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition check foreach $values
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition value=account_id
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition $n===1 (count of values)
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createInCondition mst_coa
.account_id
=0
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createPkCriteria condition after $this->createInCondition =mst_coa
.account_id
=0
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createUpdateCommand to execute
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createUpdateCommand criteria condition:mst_coa
.account_id
=0
2009/10/16 19:53:28 [info] [application] CDbCommandBuilder/createUpdateCommand sql:UPDATE mst_coa
SET account_id
=:yp0, company_id
=:yp1, description
=:yp2, sub_account
=:yp3, parent_account_id
=:yp4, normal_balance
=:yp5, account_class
=:yp6, account_type
=:yp7, position
=:yp8, sub_level
=:yp9, created_by
=:yp10, created_date
=:yp11, modified_by
=:yp12, modified_date
=:yp13 WHERE mst_coa
.account_id
=0
i noticed during the find operation: the criteria->condition is equal to mst_coa
.account_id
=11
allowing the data to be retrieved…
during the save/update operation, the criteria->condition becomes mst_coa
.account_id
=0
this might be the reason why there is no update on the database.