在php中获取mysql用户定义的变量


fetching mysql user-defined variable in php

我有一个类似的查询

SET @update_id := 0;  
UPDATE table SET column = something, id = (SELECT @update_id := id)  
WHERE condition  
LIMIT 1;   
SELECT @update_id;

它应该更新一列并返回更新后的行的id。正如您所看到的,在执行查询之前,我没有该行的id
我正在使用pdo,有什么方法可以在php中获取@updated_id的值吗
当我尝试使用$stmt->fetchColumn();时,我得到了SQLSTATE[HY000]: General error
此外,我确信查询是正确的,因为我在phpMyadmin中执行了它,它返回了正确的值,所以它可以工作。phpMyadmin中的结果如下:

|   @updated_id    |  
|------------------|   
|        32        |

并且更新id为32的行中所需的列(其具有条件)
有什么想法吗?

我认为您可以像读取简单表一样读取这个值。您还可以添加字段别名,并通过名称-SELECT @update_id AS updated_id读取此字段。

另一种变体是使用SELECT。。。FOR UPDATE语句。