PDO lastInsertID返回0

时间:2013-02-15 03:14:33

标签: php pdo

我遇到了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;

2 个答案:

答案 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