Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php和mysql中执行更新命令后检索列_Php_Sql_Mysql - Fatal编程技术网

如何在php和mysql中执行更新命令后检索列

如何在php和mysql中执行更新命令后检索列,php,sql,mysql,Php,Sql,Mysql,我不熟悉php和sql。我有一张三列的桌子。一个256位哈希数和两个整数。我想搜索与哈希匹配的行,然后检索一个int并递增另一个int。所以,我想我应该用第一个UPDATE命令一举两得 $query = sprintf("UPDATE %s SET activationcount = (activationcount+1) WHERE hash='%s'", "activations", mysql_real_escape_string($hashv)); $result = mysql_que

我不熟悉php和sql。我有一张三列的桌子。一个256位哈希数和两个整数。我想搜索与哈希匹配的行,然后检索一个int并递增另一个int。所以,我想我应该用第一个UPDATE命令一举两得

$query = sprintf("UPDATE %s SET activationcount = (activationcount+1) WHERE hash='%s'", "activations", mysql_real_escape_string($hashv));
$result = mysql_query($query,$dbhandle);
然后我使用mysql\u受影响的行来查看它是否成功。如果受影响的行返回1,那么我知道它存在于数据库中,并且它是自动递增的。到目前为止还不错

现在我想检索该行中的另一列。我是否需要执行select以再次获取同一行,或者该行是否可以从UPDATE命令返回的结果对象中检索?我找不到这个场景的好例子


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

您需要运行一个单独的SELECT语句

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


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

不,这在mysql中无法完成,您必须单独执行选择操作。

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


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

简短的回答是否。但是,您可以使用两个单独的SQL语句或一个存储过程来完成此操作。@1很好。我想你应该把它贴出来作为答案。我现在把它写在我的答案里,希望你不介意