我不知道,我的代码中有什么不对。我尝试获取最新的插入ID,它回显0?任何想法?
public function __construct() {
$this->mysqli = new mysqli(MYSQLI_SERVER, MYSQLI_USER, MYSQLI_PWD, MYSQLI_DBNAME) or die ('Error with connecting to the database!');;
}
public function insert_id(){
return $this->mysqli->insert_id;
}
$db->query("INSERT INTO user(f_name, l_name) VALUES('$f_name', '$l_name'));
var_dump($db->insert_id()); // return 0?
答案 0 :(得分:12)
您应该按照以下方式使用它:
<?php
$mysqli = new mysqli(SQLI_SERVER, MYSQLI_USER, MYSQLI_PWD, MYSQLI_DBNAME);
if ($result = $mysqli->query("INSERT INTO user(f_name, l_name) VALUES('$f_name', '$l_name');")) {
echo 'The ID is: '.$mysqli->insert_id;
}
?>
答案 1 :(得分:5)
mysqli_insert_id()函数返回查询生成的ID,该查询在具有AUTO_INCREMENT属性的列的表上。如果最后一个查询不是INSERT或UPDATE语句,或者如果修改后的表没有具有AUTO_INCREMENT属性的列,则此函数将返回零。
您似乎没有具有AUTO_INCREMENT属性的字段,或者您在查询中没有使用该字段。