public static function incrementActivity($partner_id, $activity, $sub_activity, $amount = 1, $day = null, $field = null) { if (!$day) { $day = date("Y-m-d"); } $field_name = $field ? PartnerActivityPeer::AMOUNT . $field : PartnerActivityPeer::AMOUNT; /* $query = "INSERT INTO ".PartnerActivityPeer::TABLE_NAME." (". PartnerActivityPeer::PARTNER_ID.",". PartnerActivityPeer::ACTIVITY_DATE.",". PartnerActivityPeer::ACTIVITY.",". PartnerActivityPeer::SUB_ACTIVITY.",". $field_name.") VALUES ". "($partner_id,'$day',$activity,$sub_activity,$amount) ON DUPLICATE KEY UPDATE ". "$field_name=$field_name+$amount"; $connection = Propel::getConnection(); $statement = $connection->prepareStatement($query); $resultset = $statement->executeQuery(); */ $connection = Propel::getConnection(); $crit = new Criteria(); $crit->addAnd(PartnerActivityPeer::PARTNER_ID, $partner_id); $crit->addAnd(PartnerActivityPeer::ACTIVITY_DATE, $day); $crit->addAnd(PartnerActivityPeer::ACTIVITY, $activity); $crit->addAnd(PartnerActivityPeer::SUB_ACTIVITY, $sub_activity); $crit->addSelectColumn(PartnerActivityPeer::ID); $resultset = PartnerActivityPeer::doSelectOne($crit, $connection); /* $query = "SELECT ID FROM ".PartnerActivityPeer::TABLE_NAME." WHERE ". PartnerActivityPeer::PARTNER_ID."=$partner_id AND ". PartnerActivityPeer::ACTIVITY_DATE."='$day' AND ". PartnerActivityPeer::ACTIVITY."=$activity AND ". PartnerActivityPeer::SUB_ACTIVITY."=$sub_activity"; $statement = $connection->prepare($query); $resultset = $statement->execute(); */ // if the key exists do an update command if ($resultset) { $id = $resultset->getInt('ID'); $updateCommand = "UPDATE " . PartnerActivityPeer::TABLE_NAME . " SET {$field_name}={$field_name}+{$amount} WHERE " . PartnerActivityPeer::ID . "={$id}"; } else { $updateCommand = "INSERT INTO " . PartnerActivityPeer::TABLE_NAME . " (" . PartnerActivityPeer::PARTNER_ID . "," . PartnerActivityPeer::ACTIVITY_DATE . "," . PartnerActivityPeer::ACTIVITY . "," . PartnerActivityPeer::SUB_ACTIVITY . "," . $field_name . ") VALUES " . "({$partner_id},'{$day}',{$activity},{$sub_activity},{$amount})"; } $statement = $connection->prepare($updateCommand); $resultset = $statement->execute(); }