0

这是我将日期插入数据库的代码。一切都很好,除了我无法获得 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); 
 }

怎么了?

4

3 回答 3

0

由于mysqli调用了 PHP 的类 for mysqli,我猜你正在使用PHP-MySQLi-Database-Class,其类名是MysqliDb。此信息很重要,但您的帖子中缺少此信息,太棒了!

如果你看一下这个类,你会发现没有insert_id使用 0 参数调用的函数。您要查找的函数称为getInsertId. 正如在源代码中找到的那样。

于 2019-01-17T07:56:17.337 回答
-1

据我所知MysqliDb,没有像您尝试过的最后插入 id 功能:insert_id

有两种方法可以解决。

  1. 更改库以利用类似PDO::lastInsertId
  2. 您可以简单地运行选择查询并获取表中的最后一个 id。
于 2019-01-17T08:46:04.740 回答
-1

insert_id是一个属性而不是一个方法,所以它不应该有括号。所以应该是

$last_id = $db->insert_id;

不是

$last_id = $db->insert_id();
于 2019-01-17T09:29:08.920 回答