Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过转义空属性更新/插入?I使用CodeIgniter的活动记录_Codeigniter - Fatal编程技术网

如何通过转义空属性更新/插入?I使用CodeIgniter的活动记录

如何通过转义空属性更新/插入?I使用CodeIgniter的活动记录,codeigniter,Codeigniter,我使用CodeIgniter的活动记录,我面临一个问题: 我在图书馆有一门课: 特布吕瑟级{ var $id = null; var $name = null; var $age = null; } 在模型中,我有一个类: class Task_m extends CI_Model { function add(){ //Assume that i already success include class TblUser so i start inste

我使用CodeIgniter的活动记录,我面临一个问题:

  • 我在图书馆有一门课:

    特布吕瑟级{

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

  • 在模型中,我有一个类:

    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.
         */
    
    
    
    
    
    
    }
    

  • 对于这一点,我希望使用类传递到活动记录函数,但对于任何包含null值的属性,都应该拒绝。(类似于joomla insteance表)

    按照如下编写类的方式,很明显,如果不提供该类,它将接受空值

    class TblUser{
    
      var $id = null;
      var $name = null;
      var $age = null;
    }
    
    那么你有两个解决方案

  • update()
    函数中,将对象初始化为
    $myTableUser->id=$id
  • 在表中添加名为
    notnull
    的列级约束,以便在插入
    NULL
    值时引发异常

  • 第一种解决方案是最好的。。只需在
    $myTableUser->name=$name之后添加一行
    $myTableUser->id=$id
    。。这是最简单的解决方案:)字段“年龄”如何?在这里只是一个例子,但实际上我们将有很多属性,为什么我希望类属性赋值为null是在数据库上执行操作时的escape,比如component.huh的joomla实例表。。我们又有两个解决方案。。1.进行数据库调用以获取该行和数据,并分别将该数据分配给对象变量。只需更新那些需要更新的对象变量2。自定义查询。。如下
    $this->db->where('id',$id)$此->数据库->更新('tbl_user',数组('name'=>$name))