2010-01-26 168 views
6

在PHP中,我使用PDO和pgSQL驱动程序。我想知道如何获得INSERT sql查询中给出的“RETURNING”子句的值。 我当前的代码看起来像这样,在PHP中,当使用PDO和pgSQL时,如何在原始INSERT sql查询中获得“RETURNING”子句的值

$query = 'INSERT INTO "TEST" (firstname, lastname) VALUES ('John', 'Doe') RETURNING user_id'; 
$queryHandle = $connection->prepare($query); 
$queryHandle->execute(); 

显然

$ queryHandle->的execute();

返回TRUE或FALSE。但是如果插入成功,我想获得“user_id”的值。你们可以给我一个关于如何去做的指针吗?谢谢。

+0

我确实先尝试使用PDO :: lastInsertID。但它只是返回空白值。因此,环顾四周后发现上述方式更清洁。 – Chantz 2010-01-26 18:21:16

回答

9

你有没有试过把命令作为一个选择返回时,运行

$ret=$queryHandle->fetchAll(); 
+0

它绝对有效! :)但我希望有一个更直接/干净的方式来做到这一点。也许我要求的太多了...... – Chantz 2010-01-26 18:39:10

+0

没有更清晰的方法,因为您有返回的数据。这是微不足道的,你必须取回它。 – Pentium10 2010-01-26 19:22:07

+1

k。只是一个小问题,我用fetch()而不是fetchAll()正弦,它保证每次只有一个插入。 – Chantz 2010-01-26 20:39:47

11
$ret = $queryHandle->fetchColumn(); 

会返回一个值,而不是一个数组。

+0

这是正确的方法,如果你只想得到ID返回'返回ID ...' – Xeoncross 2011-10-15 17:18:23

相关问题