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();