【问题标题】:Can't get the Last Insert UUID with PDO/PHP无法使用 PDO/PHP 获取最后插入 UUID
【发布时间】:2019-05-10 22:14:02
【问题描述】:

我的主键是 UUID。当我制作一个新的用户插图时,我需要获取插图 ID。

尝试过这样:

$insert=$connection->prepare("INSERT INTO db.schema.users (blocked) VALUES (false)")->execute();

var_dump($connection->lastInsertId('schema.users') );

但是得到以下错误:

SQLSTATE[42809]: Wrong object type: 7 ERROR:  \"users\" is not a sequence

这是我的表结构:


甚至有可能获得这样的 UUID 吗?

【问题讨论】:

    标签: php sql postgresql pdo postgresql-9.2


    【解决方案1】:

    尝试使用RETURNING 语法:

    $stmt = $connection->prepare("INSERT INTO db.schema.users (blocked) VALUES (false) RETURNING usr_uuid");
    $stmt->execute()
    
    var_dump($stmt->fetchColumn());
    

    【讨论】:

    • 知道了:SQLSTATE[3F000]: Invalid schema name: 7 ERROR: schema \"users\" does not exist
    • @Borsn 检查我更新的代码。 lastInsertId 在这种情况下不起作用。
    • 我现在收到另一个错误:Call to a member function fetchColumn() on boolean$stmt$insert 在我的情况下是 bool(true)
    • lastInsertId 仅在主键设置为自动增量时有效。否则 lastInsertId 将返回 0 表示插入成功,返回 -1 如果不成功,例如重复条目,无效语法
    猜你喜欢
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2011-06-30
    • 2014-12-11
    相关资源
    最近更新 更多