我有一个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
是一个帖子的等级。我要么++或 - 它。)
通过预先形成另一个查询,是否可以这样做?一个函数,它将返回最后一次更改的值?
答案 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