【问题标题】:Codeigniter Active record helpCodeigniter 活动记录帮助
【发布时间】:2011-02-15 20:16:26
【问题描述】:

如果更新请求中某个字段不为空,我正在尝试将 INT 列增加 1,目前我也有此更新列,

public function updateCronDetails($transaction_reference, $flag, $log) {
    $data = array (
        'flag' => $flag,
        'log' => "$log"
    );

    $this->db->where('transaction_reference', $transaction_reference);
    $this->db->update('sy_cron', $data);
}

我需要知道的是如何检查发送到日志字段的值是否为 NULL,如果是,我如何将名为 count 的列增加 1?

【问题讨论】:

    标签: php mysql activerecord codeigniter


    【解决方案1】:

    试试这个:

    $this->db->set('field', 'field+1', FALSE);
    

    【讨论】:

      【解决方案2】:
      public function updateCronDetails($transaction_reference, $flag, $log = NULL)
      {    
          // Only increment this field if not null
          is_null($log) || $this->db->set('field', 'field+1', FALSE);
      
          $this->db
              ->set('flag', $flag)
              ->set('log', $log)
              ->where('transaction_reference', $transaction_reference)
              ->update('sy_cron', $data)
      }
      

      【讨论】:

        【解决方案3】:

        如何使用三元运算符,即

        public function updateCronDetails($transaction_reference, $flag, $log) {
            $data = array (
                'flag' => $flag,
                'log' => (is_null($log))? 1 : $log,
            );
        
            $this->db->where('transaction_reference', $transaction_reference);
            $this->db->update('sy_cron', $data);
        }
        

        好像它的 null 那么值需要是?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-26
          • 2014-02-22
          • 2014-10-19
          相关资源
          最近更新 更多