我有问题,请帮帮我。我正在使用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
这是我的错误:
答案 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();