Php Codeigniter检查数据库中是否存在用户
我想检查数据库中是否存在该用户。在我的模型中,我有一个方法如下:我创建一个新的Php Codeigniter检查数据库中是否存在用户,php,codeigniter,Php,Codeigniter,我想检查数据库中是否存在该用户。在我的模型中,我有一个方法如下:我创建一个新的用户,从发布的数据中插入id和password,然后将id传递给函数,以检查是否存在具有此id的用户。但它给出了以下错误: 严重性:注意 消息:未定义的属性:登录::$User 文件名:controllers/login.php 电话号码:56 致命错误:在第56行的F:\xamp\htdocs\leoSMS\application\controllers\login.php中的非对象上调用成员函数user_exis
用户
,从发布的数据中插入id
和password
,然后将id
传递给函数,以检查是否存在具有此id
的用户。但它给出了以下错误:
严重性:注意 消息:未定义的属性:登录::$User 文件名:controllers/login.php 电话号码:56 致命错误:在第56行的F:\xamp\htdocs\leoSMS\application\controllers\login.php中的非对象上调用成员函数user_exists() 型号名称:用户
用户检查功能
控制器
尝试如果($user->user\u存在($user->user\u id))
而不是如果($this->user->user\u存在($user->user\u id))
您的语句正在尝试执行未知属性用户的方法。可能uses没有定义为类Login的属性。
新语句正在调用类User的对象的方法。此对象存在,因为您刚刚创建了它。尝试此模型类
function create_member()/**用于创建新用户的函数**/
{
$this->db->where('Username'),$this->input->post('Username');
$query=$this->db->get('register');
如果($query->num\u rows>0)
{
回声“×”;
echo“用户名已被使用”;
回音“”;
}
}
请编辑您的答案,添加代码如何工作以及如何解决OP问题的解释。许多SO海报都是新手,不会理解您发布的代码。
public function user_exists($id){
$this->db->select('id');
$this->db->where('id',$id);
$query = $this ->db->get('user_table');
if ($query->num_rows() > 0)
return TRUE;
else
return FALSE;
}
<?php
class Login extends CI_Controller
{
/**
* load the magazines
*/
function __construct(){
parent::__construct();
$this->load->library('form_validation');
$this->load->model('User','National_Holiday','Updated_Holiday');
}
public function index() {
$this->load->view('login');
}
/**
* add a magazine
*/
public function login()
{
$this->form_validation->set_rules(array (
array(
'field' => 'username',
'label' => 'username',
'rules' => 'required|is_numeric|max_length[1]|min_length[1]',
) ,
array(
'field' => 'password',
'label' => 'password',
'rules' => 'required|is_numeric|max_length[1]|min_length[1]',
),
));
$this -> form_validation ->set_error_delimiters(
'<div class="alert alert-error">','</div>');
echo $this->input->post('username') . "<br>";
echo $this->input->post('password'). "<br>";
$user = new User();
$user->user_id = $this->input->post('username');
$user->password = $this->input->post('password');
echo "<tt><pre>". var_dump($user) . "</tt></pre>";
if($this->User->user_exists($user->user_id))
echo "true";
else {
echo "false";
}
if(!$this->form_validation->run()){
$this->load->view('login');
}
else {
$this->load->view('national_holiday_screen');
}
}
}
function create_member()/** function to create the new user **/
{
$this->db->where('Username ', $this->input->post('Username '));
$query = $this->db->get('register');
if($query->num_rows > 0)
{
echo '<div class="alert alert-error"><a class="close" data-dismiss="alert">×</a><strong>';
echo "Username already taken";
echo '</strong></div>';
}
}