Php 数据库中的值未插入codeIgniter?
我是新的php框架,我已经创建了一个简单的表单,并希望在数据库中插入它的值,但没有这样做不知道我错在哪里 每次获取MySQL时,都返回一个空结果集(即零行)。 我正在使用CodeIgniter 3和mysqli驱动程序这是我的控制器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
//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链接作为第一个参数。非常感谢,我没有注意到这一点,也没有认真对待它