首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在php和mysql中执行UPDATE命令后检索列

如何在php和mysql中执行UPDATE命令后检索列
EN

Stack Overflow用户
提问于 2010-08-15 18:50:41
回答 3查看 89关注 0票数 3

我是php和sql的新手。我有一个有三列的表格。一个256位的哈希数和两个整数。我想搜索与我的散列匹配的行,然后检索一个int并递增另一个。所以,我想我可以先使用UPDATE命令,一举两得。

代码语言:javascript
复制
$query = sprintf("UPDATE %s SET activationcount = (activationcount+1) WHERE hash='%s'", "activations", mysql_real_escape_string($hashv));
$result = mysql_query($query,$dbhandle);

然后,我使用mysql_affected_rows查看它是否成功。如果受影响的行数返回1,则我知道它存在于数据库中,并且已自动递增。到目前一切尚好。

现在,我想检索该行中的另一列。我是否需要执行select操作才能再次获得相同的行,或者是否可以从UPDATE命令返回的结果对象中以某种方式检索该行?对于这种情况,我找不到一个好的例子。

这是基本的东西,但对我来说却是全新的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-15 18:53:22

您需要运行单独的SELECT语句。

在PostgreSQL 9.0中,您可以使用UPDATE ... RETURNING在一个查询中更新一行并返回一些值。在MySQL中还没有任何等效的功能。

作为一种解决办法,您可以将更新和选择放在存储过程中,这样您只需要对数据库进行一次调用。

票数 1
EN

Stack Overflow用户

发布于 2010-08-15 19:22:10

不,这不能在mysql中完成,您必须发出单独的select命令

票数 0
EN

Stack Overflow用户

发布于 2010-08-20 02:49:58

如果您担心在两个查询上浪费时间,可以结合使用UPDATE LOW_PRIORITY和PHP mysql_unbuffered_query()

您无法获取已修改行的ID,因为更新可能不会修改任何行,也可能会修改多行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3487054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档