Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取最后一个插入id的代码有什么问题?_Php_Php Mysqlidb - Fatal编程技术网

Php 获取最后一个插入id的代码有什么问题?

Php 获取最后一个插入id的代码有什么问题?,php,php-mysqlidb,Php,Php Mysqlidb,这是我将日期插入数据库的代码。一切都很好,只是我拿不到插入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();

这是我将日期插入数据库的代码。一切都很好,只是我拿不到插入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); 
 }
怎么了?

因为PHP的mysqli类被称为mysqli,我猜您使用的是,它的类名是MysqliDb。这些信息很重要,在你的帖子中丢失了,太棒了

如果您查看该类,就会发现没有一个名为insert_id的函数具有0个参数。您正在寻找的函数称为getInsertId。正如在.

中发现的,据我所知,MysqliDb没有您尝试过的最后一个insert id函数:insert\u id

有两种方法

更改库以使用类似以下内容或 您只需运行select查询并获取表中的最后一个id。 insert_id是一个属性而不是一个方法,因此它不应该有括号。应该如此

$last_id = $db->insert_id;
不是


您应该提供更多关于getDbInstance的信息,并插入_idfunction getDbInstance{return new MysqliDbDB_HOST,DB_USER,DB_PASSWORD,DB_NAME;}他的$DB不属于mysqli类。
$last_id = $db->insert_id();