我的获取最后插入ID的代码有什么问题?

时间:2019-01-17 07:50:23

标签: php mysqli

这是我将日期插入数据库的代码。一切都很好,除了我无法获取insert_id。

if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{
$data_to_store = filter_input_array(INPUT_POST);
$db = getDbInstance();
$Stats = $db->insert ('images', $data_to_store);
$last_id = $db->insert_id();

if($Stats)
{
    $_SESSION['success'] = "Record added successfully!";
    header('location: index.php');
    exit();
}  

}

它显示:

Fatal error: Uncaught Error: Call to undefined method MysqliDb::insert_id() in

我的数据库:

 function getDbInstance() { 
 return new MysqliDb(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME); 
 }

怎么了? 谢谢

3 个答案:

答案 0 :(得分:0)

由于PHP用于mysqli的类称为mysqli,所以我猜您正在使用PHP-MySQLi-Database-Class,其类名是MysqliDb。这些信息非常重要,并且在您的帖子中也很少见!

如果您查看该类,您会发现没有名为0的函数insert_id。您要查找的函数称为getInsertId。如source中所示。

答案 1 :(得分:-1)

据我所知,MysqliDb没有像您尝试过的最后一个插入ID函数:insert_id

有两种解决方法。

  1. 更改库以使用类似PDO::lastInsertId
  2. 您可以简单地运行选择查询并获取表中的最后一个ID。

答案 2 :(得分:-1)

insert_id是属性而不是方法,因此它不应该带有括号。所以应该是

$last_id = $db->insert_id;

不是

$last_id = $db->insert_id();