如何通过escape null属性更新/插入?我使用CodeIgniter的活动记录

时间:2012-08-30 05:00:23

标签: codeigniter

我使用CodeIgniter的活动记录,我遇到了一个问题:

  1. 我在库中有一个类:

    class TblUser {

      var $id = null;
      var $name = null;
      var $age = null;
    

    }

  2. 在模型中我有一个类:

    class Task_m extends CI_Model {
    
        function add(){
    
           //Assume that i already success include class TblUser so i start instean
    
          $myTableUser = new TblUser ();
          $myTableUser->id = 1;
          $myTableUser->name = 'Foo';
          $myTableUser->age = 20;
          $this->db->insert('tbl_user',$myTableUser);
          // Assume that success add to database
        }
        function update($id,$name){
    
           //Assume that i already success include class TblUser so i start instean
    
          $myTableUser = new TblUser ();
          $myTableUser->name = $name;
    
          $this->db->where('id', $id);
          $this->db->update('tbl_user',$myTableUser); 
          // Assume that success add to database
        }
    
    
        /* problem 
         * i call function : update(1,'titi');
         * in database record will update like below:
         *  ----------------
         *  |id | name | age | 
         *   ----------------
         *  |null| titi| null|
         *  -----------------
         * I don't want null value, my wish if any property $myTableUser is null should be refuse.
         */
    
    
    
    
    
    
    }
    
  3. 对于这个提及我想使用类传递给活动记录函数但是对于包含null值的任何属性应该是拒绝。 (类似joomla insteance表)

1 个答案:

答案 0 :(得分:1)

你按照如下方式编写类的方式,很明显,如果没有提供它,它将采用null值。

class TblUser{

  var $id = null;
  var $name = null;
  var $age = null;
}

然后你有两个解决方案

  1. update()功能中,您将对象初始化为$myTableUser->id = $id;
  2. 在表中添加名为NOT NULL的列级约束,以便在插入null值时抛出异常。