PDO postgresql 最后插入的 id 返回 'false' 或 -1
Posted
技术标签:
【中文标题】PDO postgresql 最后插入的 id 返回 \'false\' 或 -1【英文标题】:PDO postgresql last inserted id return 'false' or -1PDO postgresql 最后插入的 id 返回 'false' 或 -1 【发布时间】:2017-11-03 13:40:07 【问题描述】:我有代码
$dbh = new PDO("pgsql:host=localhost; port=5432; dbname=gpd; user=postgres; password=postgres");
$sth = $dbh->prepare("INSERT INTO res (res_name, res_order) VALUES ('London', 1)");
$sth->execute();
$id = $dbh->lastInsertId();
echo $id;
记录插入,但 $id 为空。
我尝试执行查询
INSERT INTO res (res_name, res_order) VALUES ('London', 1) RETURNING id
并收到一个值“-1”
【问题讨论】:
可以分享res
的表结构吗?
CREATE TABLE res (id SERIAL PRIMARY KEY, res_name VARCHAR(100) DEFAULT '' NOT NULL, res_order INT DEFAULT 1 NOT NULL)
【参考方案1】:
回家,我自己明白必须做什么
$dbh = new PDO("pgsql:host=localhost; port=5432; dbname=gpd; user=postgres; password=postgres");
$sth = $dbh->prepare("INSERT INTO res (res_name, res_order) VALUES ('London', 1)");
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
echo "ID - ". $result["id"];
很简单
【讨论】:
以上是关于PDO postgresql 最后插入的 id 返回 'false' 或 -1的主要内容,如果未能解决你的问题,请参考以下文章