PHP MySQL PDO lastInsertID导致致命错误

时间:2011-12-20 19:08:11

标签: php mysql pdo

我尝试查看其他帖子,但没有看到任何我正在寻找的内容。

我有一个数据库查询

$sql = "INSERT INTO groups(Name) VALUES (:name)";
$dbs = $dbo->prepare($sql);

$dbs->bindParam(":name", $_POST['name'], PDO::PARAM_STR);

$dbs->execute();

$groupID = $dbs->lastInsertId();

返回此致命错误:

[Tue Dec 20 13:59:23 2011] [error] [client 127.0.0.1] PHP Fatal error:  Call to undefined method PDOStatement::lastInsertId() in /media/Storage/www/2011/admin/public/ajax.users.php on line 87, referer: http://localhost/2011/admin/public/menu.php?page=users

根据PDO :: lastInsertId()的php手册:

  

如果PDO驱动程序不支持此功能,PDO :: lastInsertId()将触发IM001 SQLSTATE。

我如何确定我的服务器是否支持lastInsertId()?我在任何地方的错误日志中都没有看到IM001。

当我运行它时,数据插入正常,但我无法在设置组权限的下一组INSERT中使用它的ID。

1 个答案:

答案 0 :(得分:28)

lastInsertId()是PDO类的一种方法,而不是PDOStatement类。

这应该有效:

$groupID = $dbo->lastInsertId();