-1

我在 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;
4

2 回答 2

2

lastInsertId()如果您实际进行插入,则只会返回最后一个插入 id。你只是在做一个select.

于 2013-02-15T03:16:02.347 回答
2

函数名称->lastInsertId()应该提示您 SELECT 语句通常不会设置最后一个插入 ID。

通常,只有在具有列的表上的 INSERT 语句才会auto_increment表现出这种行为。

但也有例外,例如何时LAST_INSERT_ID(expr)使用:

SELECT LAST_INSERT_ID(`id`) AS `id`, image1 FROM items WHERE `id` = :id
于 2013-02-15T03:17:57.707 回答