【问题标题】:PHP MySQL PDO lastInsertID causes fatal errorPHP MySQL PDO lastInsertID 导致致命错误
【发布时间】:2012-01-24 17:21:07
【问题描述】:

我尝试浏览其他一些帖子,但没有看到任何我正在寻找的东西。

我有一个数据库查询

$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。

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

【问题讨论】:

    标签: php mysql pdo


    【解决方案1】:

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

    这应该可行:

    $groupID = $dbo->lastInsertId();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 2012-08-02
      • 1970-01-01
      相关资源
      最近更新 更多