Php 数据库中的值未插入codeIgniter?

Php 数据库中的值未插入codeIgniter?,php,mysqli,phpmyadmin,codeigniter-3,Php,Mysqli,Phpmyadmin,Codeigniter 3,我是新的php框架,我已经创建了一个简单的表单,并希望在数据库中插入它的值,但没有这样做不知道我错在哪里 每次获取MySQL时,都返回一个空结果集(即零行)。 我正在使用CodeIgniter 3和mysqli驱动程序这是我的控制器 <?php //display_errors(on); error_reporting(E_ALL); class Register extends CI_Controller { public func

我是新的php框架,我已经创建了一个简单的表单,并希望在数据库中插入它的值,但没有这样做不知道我错在哪里

每次获取MySQL时,都返回一个空结果集(即零行)。 我正在使用CodeIgniter 3和mysqli驱动程序这是我的控制器

<?php 
      //display_errors(on);
       error_reporting(E_ALL);

      class Register extends CI_Controller {

      public function index () {

      //Validations

      $rules=array (

                "username"=> array(
                    "field"=>"username",
                    "label"=>"Username",
                    "rules"=>"required|max_length[20]|min_length[5]|callback_username_is_taken"


                ),

                "password"=> array(
                    "field"=>"password",
                    "label"=>"Password",
                    "rules"=>"required|max_length[20]|min_length[6]"


                ),

                "pass_conf"=> array(
                    "field"=>"pass_conf",
                    "label"=>"Password",
                    "rules"=>"required|matches[password]"


                ),
                "email"=> array(
                    "field"=>"email",
                    "label"=>"Email",
                    "rules"=>"required|valid_email|callback_is_taken"


                )

      );

      //set the rules

      $this->form_validation->set_rules($rules);
      //Override the message
      $this->form_validation->set_message('required','The %s field is empty');

      // check to see if form has been submitted
      if ($this->form_validation->run()!=true) {
             $this->load->helper('url');
             $this->load->view('register'); //Display page
             $this->load->view('footer');
      }else {
            echo "Donkey Butt";

            $form=array();
            $form['username']=$this->input->post("username");
            $form['password']=md5($this->input->post("password"));
            $form['email']=$this->input->post("email");

            if(self::createUser($form['username'],$form['password'],$form['email'])==true) {

                    //Created User Successfully
                    echo "Success";
                    //$this->load->view("success",$data);

            }else{
                echo "problem in subbmitting the form";
            }


      }
      }

      public function username_is_taken($input) {





            $query="SELECT * FROM `tbl_usrs` WHERE  `username`=? ";
            $arg=array ($input);
            $exec=$this->db->query($query,$arg) or die(mysqli_error());
            echo $query;

            if($exec->num_rows() >0)

            {
                $this->form_validation->set_message('username_is_taken','Sorry the UserName <b> $input </b> is already taken');
                return false;


            }else {
                return true;
            }

      }


        public function email_is_taken($input) {

            $query="SELECT * FROM `tbl_usrs` WHERE `email`=? ";
            $arg=array ($input);
            $exec=$this->db->query($query,$arg) or die(mysqli_error());
            echo $query;
            if($exec->num_rows() >0)

            {
                $this->form_validation->set_message('email_is_taken','Sorry the email <b> $input </b> is already taken');
                return false;


            }else {
                return true;
            }

      }

      public function createUser($user,$pass,$email)
      {
            $query="
                INSERT INTO `tbl_usrs` (`username`,`password`,`email`,`ip`)
                VALUES (?,?,?,?)

            ";
            $arg=array (self::protect($user),self::protect($password),$email,$_SERVER['REMOTE_ADDR']);

            if($this->db->query($query,$arg)==true)
            {
                echo $query;
                return true; // if added to database
            }else {
                    return false;
            }   


      }

      public function protect($str) {
            return mysqli_real_escape_string($str);
      }
}

      ?>

修复mysqli\u real\u escape\u字符串($str)//除两个参数外,仅给出一个参数
修复方法是使您的代码正常工作

请为调试代码提供一些参考。这也是我得到的错误错误号:1048列“username”不能为null插入
tbl_usrs
username
password
email
ip
)值(null,null,
)anmol@gmail.com','::1')文件名:C:/xampp/htdocs/koopanda/application/controllers/Register.php行号:132您必须有其他错误才能。。。。我可以清楚地看到mysqli_real_escape_字符串只有一个参数,您应该将mysqli_u链接作为第一个参数。非常感谢,我没有注意到这一点,也没有认真对待它