检查lastInsertId()返回true和数字(id)的好方法是什么?
(使用mySQL数据库的PDO)
我需要做这样的事吗?
// some INSERT query here
$lastid = $conn->lastInsertId();
if (is_numeric($lastid) && $lastid > 0) {
// ok, NOW you can use $lastid
}
或者是否有更简单的(也许是原生的)方式?
答案 0 :(得分:1)
PDO::lastInsertId()
返回一个字符串,典型的数字。由于数据库驱动程序之间的差异,这可能甚至没有返回任何有意义的东西,陈述文档。
我将其投放到int
并检查它是否为0。
$lastid = (int) $conn->lastInsertId();
if (!$lastid)
{
// Failed retrieving the ID (but didn't necessarily fail the insert)
}