我有这样的查询
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
的值?尝试使用
SQLSTATE[HY000]: General error
时得到$stmt->fetchColumn();
。我也确定查询是正确的,因为我在phpMyadmin中执行了它,并且返回了正确的值,因此可以正常工作。 phpMyadmin中的结果如下所示:
| @updated_id |
|------------------|
| 32 |
并更新ID为32(具有条件)的行中的所需列。
有什么想法吗?
最佳答案
我认为您可以在读取简单表时读取此值。您还可以添加字段别名并按名称-SELECT @update_id AS updated_id
读取此字段。
另一个变体是使用SELECT...FOR UPDATE语句。
关于php - 在PHP中获取MySQL用户定义的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12274829/