如何使用PHP获取MySQL中最后更新的行的ID?
发布于 2012-03-30 04:15:30
嗯,我很惊讶,在这些答案中,我没有看到最简单的解决方案。
假设item_id
是items
表中的整数标识列,您使用以下语句更新行:
UPDATE items
SET qwe = 'qwe'
WHERE asd = 'asd';
然后,要知道语句后面最新受影响的行,您应该稍微将语句更新为以下内容:
UPDATE items
SET qwe = 'qwe',
item_id=LAST_INSERT_ID(item_id)
WHERE asd = 'asd';
SELECT LAST_INSERT_ID();
如果只需要更新实际更改的行,则需要通过LAST_INSERT_ID检查行中的数据是否要更改来添加item_id的条件更新。
发布于 2011-01-18 13:55:39
这是与Salman A的答案相同的方法,但这是您实际需要的代码。
首先,编辑您的表,使其在行被修改时自动跟踪。如果只想知道行最初插入的时间,请删除最后一行。
ALTER TABLE mytable
ADD lastmodified TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
然后,要找出最后更新的行,可以使用以下代码。
SELECT id FROM mytable ORDER BY lastmodified DESC LIMIT 1;
这段代码全部取自MySQL vs PostgreSQL: Adding a 'Last Modified Time' Column to a Table和MySQL Manual: Sorting Rows。我刚组装好的。
发布于 2014-05-01 20:31:54
查询:
$sqlQuery = "UPDATE
update_table
SET
set_name = 'value'
WHERE
where_name = 'name'
LIMIT 1;";
PHP函数:
function updateAndGetId($sqlQuery)
{
mysql_query(str_replace("SET", "SET id = LAST_INSERT_ID(id),", $sqlQuery));
return mysql_insert_id();
}
这是我的工作;)
https://stackoverflow.com/questions/1388025
复制相似问题