gpt4 book ai didi

php - PDO lastInsertId() 未获取值

转载 作者:行者123 更新时间:2023-11-29 08:42:26 25 4
gpt4 key购买 nike

我无法使用$db->lastInsertId();获取lastinsertid值或$db->lastInsertId('fid');

$stmt = $db->stmt_init();   

$sql = "INSERT INTO ch_files_details (name,extension,size,parent) VALUES (?,?,?,?)";

$stmt = $db->prepare($sql) or die($db->error());

$stmt->bind_param('ssii', $filename, $extension, $filesize, $parent);

$stmt->execute();

$fid = $db->lastInsertId();

有什么遗漏或错误吗?

我能够插入到表中,但只是无法获取最后插入的 ID。

Table Definition: 
`ch_files_details` (
`fid` bigint(20) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`extension` text NOT NULL,
`size` bigint(20) NOT NULL,
`parent` bigint(20) NOT NULL,
PRIMARY KEY (`fid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;

最佳答案

PDO::lastInsertId 在这里不起作用,因为您没有使用 PDO。上面的代码是 MySQLi 代码,而不是 PDO。使用mysqli::$insert_id.

// This is all MySQLi prepared statement code, not PDO!!!
// PDO uses bindParam(), not bind_param(), doesn't have stmt_init(), and doesn't use the 'ssii' type strings for binding
$stmt = $db->stmt_init();
$sql = "INSERT INTO ch_files_details (name,extension,size,parent) VALUES (?,?,?,?)";
$stmt = $db->prepare($sql) or die($db->error());
$stmt->bind_param('ssii', $filename, $extension, $filesize, $parent);
$stmt->execute();

// insert_id is a property of the connection MySQLi object
$fid = $db->insert_id;

评论the MySQLi manual了解完整详情。在某些时候,您最终进入了错误的文档集。

关于php - PDO lastInsertId() 未获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13430951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com