Esempio n. 1
0
 /**
  * Updates a trigger.
  */
 public function actionUpdate()
 {
     $trigger = Trigger::model()->findByPk(array('TRIGGER_SCHEMA' => $this->schema, 'TRIGGER_NAME' => $this->trigger));
     if (is_null($trigger)) {
         $trigger = new Trigger();
     }
     if (isset($_POST['query'])) {
         $query = $_POST['query'];
         try {
             // Split queries
             $splitter = new SqlSplitter($query);
             $splitter->delimiter = self::$delimiter;
             $queries = $splitter->getQueries();
             foreach ($queries as $query2) {
                 $cmd = $this->db->createCommand($query2);
                 $cmd->prepare();
                 $cmd->execute();
             }
             $response = new AjaxResponse();
             $response->addNotification('success', Yii::t('core', 'successAlterTrigger'), null, $query);
             $response->refresh = true;
             $this->sendJSON($response);
         } catch (CDbException $ex) {
             $errorInfo = $cmd->getPdoStatement()->errorInfo();
             $trigger->addError(null, Yii::t('core', 'sqlErrorOccured', array('{errno}' => $errorInfo[1], '{errmsg}' => $errorInfo[2])));
         }
     } else {
         $query = 'DROP TRIGGER ' . $this->db->quoteTableName($trigger->TRIGGER_NAME) . self::$delimiter . "\n" . $trigger->getCreateTrigger();
     }
     CHtml::generateRandomIdPrefix();
     $this->render('form', array('trigger' => $trigger, 'query' => $query));
 }