mysqli_insert_id() ожидает ровно 1 параметр, 0 задан в CodeIgniter

У меня проблема, пожалуйста, помогите мне. Я использую код воспламенитель Это мой код.

мои модели (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;
    }
}

И это частично код в контроллере $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

И это Моя ошибка:

введите описание изображения здесь

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() не возвращает ресурс соединения.

Передайте переменную подключения к базе данных в качестве параметра

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

Вы используете codeigniter, поэтому было бы лучше, если бы вы использовали функции codeigniter только для выполнения операций с базой данных.

Определенно вы получите результат, используя mysqli_insert_id(db_connection_object), но было бы лучше, если вы используете встроенную функцию codeigniter

    $this->db->insert_id();
Другие вопросы по тегам