我遇到了lastInsertID返回0的问题。它正在另一个页面中工作,所以我在这里遇到了问题。
以下是在try / catch块中。
$idCount = "42";
/** set the database **/
$db = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
/** set the error reporting attribute **/
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $db->prepare("SELECT image1 FROM items WHERE `id` = :id");
/** bind the parameters **/
$stmt->bindParam(':id', $idCount, PDO::PARAM_STR);
$stmt->execute();
$idCount = $db->lastInsertId();
echo $idCount;
答案 0 :(得分:2)
lastInsertId()
将仅返回最后一个插入ID。你只是做select
。
答案 1 :(得分:2)
函数名->lastInsertId()
应该提示SELECT语句通常不会设置最后一个插入ID。
通常,只有auto_increment
列的表上的INSERT语句才会表现出该行为。
但也有例外情况,例如何时使用LAST_INSERT_ID(expr)
:
SELECT LAST_INSERT_ID(`id`) AS `id`, image1 FROM items WHERE `id` = :id