在依赖它之前检查lastInsertId()

时间:2014-08-06 17:54:51

标签: php mysql pdo

检查lastInsertId()返回true和数字(id)的好方法是什么?

(使用mySQL数据库的PDO)

我需要做这样的事吗?

// some INSERT query here

$lastid = $conn->lastInsertId();

if (is_numeric($lastid) && $lastid > 0) {

  // ok, NOW you can use $lastid

}

或者是否有更简单的(也许是原生的)方式?

1 个答案:

答案 0 :(得分:1)

PDO::lastInsertId()返回一个字符串,典型的数字。由于数据库驱动程序之间的差异,这可能甚至没有返回任何有意义的东西,陈述文档。

我将其投放到int并检查它是否为0。

$lastid = (int) $conn->lastInsertId();

if (!$lastid) 
{
   // Failed retrieving the ID (but didn't necessarily fail the insert)
}