检索mysql中的最后更新列

时间:2009-07-06 15:43:01

标签: php mysql zend-db lastinsertid

我有一个MySQL查询,如下所示(使用Zend_Db):

 $sql = $handle->quoteInto("UPDATE board SET rank=rank+1 WHERE post_id=?", $postid);
 $handle->query($sql);

(Rank不是自动递增PK)。 我想现在检索rank的值而不预先形成另一个查询。 我已经尝试了$handle->lastInsertId();但它似乎没有用,因为我没有使用MySQL的自然自动递增方法(我不能 - rank是一个帖子的等级。我要么++或 - 它。)

通过预先形成另一个查询,是否可以这样做?一个函数,它将返回最后一次更改的值?

2 个答案:

答案 0 :(得分:2)

我不相信这是可能的 - 你只需做一个SELECT

答案 1 :(得分:0)

您可以使用MySQL提供的LAST_INSERT_ID函数来设置值,然后通过$handle->lastInsertId();依赖的mysql_insert_id() C函数使其可用。

以下是您的代码段的更新版本,并对其进行了LAST_INSERT_ID更改:

 $sql = $handle->quoteInto("UPDATE board SET rank=LAST_INSERT_ID(rank+1) WHERE post_id=?", $postid);
 $handle->query($sql);

如果您有任何问题,请与我们联系。

HTH,

-Dipin