public function save() { $sql = "SET FOREIGN_KEY_CHECKS = 0;\n"; $sql .= ""; foreach ($this->data_after_validor as $key => $value) { $sql .= sqlBuilder::createTruncateTableCommand($key); $sql .= sqlBuilder::createInsertFromArray($value, $key); } $sql .= "\n\nSET FOREIGN_KEY_CHECKS = 1;\n"; $connection = Yii::app()->db; $transaction = $connection->beginTransaction(); try { TimezoneWork::set('UTC'); $command = $connection->createCommand($sql); $command->execute(); $transaction->commit(); $this->result_success = true; return true; } catch (Exeption $e) { $transaction->rollback(); $this->result_success = false; } return false; // try{ // $count = $command->execute(); // $this->_logger->log(__METHOD__, array('count' => $count)); // } catch (Exception $e) { // $this->_logger->log(__METHOD__,array('err' => $e->getMessage())); // } }
public function saveDataPairs($params) { $this->_logger->log(__METHOD__); $this->_logger->log(__METHOD__, array('pid' => getmypid(), 'log_id' => $params['listener_log_id'])); if ($this->prepared_pairs) { $sql = ''; $boool = false; foreach ($this->prepared_pairs as $key => $pair) { $sensor_feature_id = $this->_findFeatureId($pair['feature_code'], $params['sensor_features']); if (!$sensor_feature_id) { $this->_logger->log(__METHOD__ . ' Attention: ', array('feature_code' => $pair['feature_code'], 'sensor_features' => print_r($params['sensor_features'], true))); } $measuring_timestamp = date('Y-m-d H:i:s', isset($pair['measuring_timestamp']) ? $pair['measuring_timestamp'] : $this->incoming_measuring_timestamp); $criteria = new CDbCriteria(); $criteria->compare('measuring_timestamp', $measuring_timestamp); $criteria->compare('sensor_feature_id', $sensor_feature_id); $criteria->compare('station_id', $params['sensor']->station_id); $sensor_data = SensorData::model()->find($criteria); if (is_null($sensor_data) || $params['rewrite_prev_values']) { if (is_null($sensor_data)) { $sensor_data = new SensorData(); $sensor_data->sensor_data_id = "DEFAULT"; $sensor_data->created = "NOW()"; } // // if(array_key_exists($pair['feature_code'],$this->checkPeriodArray)){ // $pair = $this->checkPeriod( // $measuring_timestamp, // $this->_findFeatureId($this->checkPeriodArray[$pair['feature_code']],$params['sensor_features']), // $params['sensor']->station_id, // $key); // // } $sensor_data->station_id = $params['sensor']->station_id; $sensor_data->sensor_id = $params['sensor']->station_sensor_id; $sensor_data->sensor_feature_id = $sensor_feature_id; $sensor_data->sensor_feature_value = $pair['value']; $sensor_data->period = $pair['period']; $sensor_data->listener_log_id = $params['listener_log_id']; $sensor_data->measuring_timestamp = $measuring_timestamp; $sensor_data->sensor_feature_exp_value = isset($pair['exp_value']) ? $pair['exp_value'] : 0; $sensor_data->metric_id = $pair['metric_id']; $sensor_data->sensor_feature_normalized_value = $pair['normilized_value']; $sensor_data->is_m = $pair['is_m'] == 1 ? 1 : 0; $sensor_data->updated = "NOW()"; $sql .= sqlBuilder::createInsertFromObject($sensor_data, SensorData::model()->tableName(), $boool); $boool = true; } } $sql .= ';'; $connection = Yii::app()->db; $command = $connection->createCommand($sql); try { $count = $command->execute(); $this->_logger->log(__METHOD__, array('count' => $count)); } catch (Exception $e) { $this->_logger->log(__METHOD__, array('err' => $e->getMessage())); } } }