mysqli_insert_id()期望在CodeIgniter

时间:2017-06-04 15:24:29

标签: php codeigniter

我有问题,请帮帮我。我正在使用Code igniter 这是我的代码。

我的模特(M_register.php)

class M_register extends CI_Model {

    function __construct()
    {
        parent::__construct();
    }

    function add_account($data)
    {
        $this->load->database();
        $this->db->insert('login',$data);           
        **return  mysqli_insert_id();**
    }

    function changeActiveState($key)
    {
        $this->load->database();
        $data = array(
           'active' => 1
        );

        $this->db->where('md5(id)', $key);
        $this->db->update('login', $data);

        return true;
    }
}

这是Controller中的部分代码 $ data = array(

        'username' => $username,
        'password' => $password,
        'nama' => $nama,
        'email' => $email,
        'active' => 0
    );
    $this->load->model('m_register');
    **$id = $this->m_register->add_account($data);**        
    $encrypted_id = md5($id);
enter code here

这是我的错误:

enter image description here

3 个答案:

答案 0 :(得分:3)

错误消息很明确: mysqli_insert_id()预计只有1个参数,0给定

您必须在参数中为其提供连接。例如:

$con = mysqli_connect("localhost","my_user","my_password","my_db");

mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age) VALUES ('Glenn','Quagmire',33)");

// Here the call to "mysqli_insert_id" takes the output of "mysqli_connect" as parameter
echo "New record has id: " . mysqli_insert_id($con); 

mysqli_close($con);

来源:https://www.w3schools.com/php/func_mysqli_insert_id.asp

我在您的代码中不知道您正在进行连接,但检查您对$this->load->database()的调用是否未返回连接资源。

答案 1 :(得分:1)

将数据库连接变量作为参数

传递
$query = $this->db->insert('login',$data);
return  mysqli_insert_id($dbconnection);

答案 2 :(得分:1)

您正在使用codeigniter,因此如果仅使用codeigniter函数执行数据库操作会更好。

你肯定会使用mysqli_insert_id(db_connection_object)得到结果 但是如果你使用codeigniter的内置函数

会更好
    $this->db->insert_id();