检查在UPDATE查询中修改了哪些列

时间:2018-09-01 04:57:32

标签: php mysql mysqli sql-update

当我们使用php更新MySQL记录时,可以使用以下命令检查其是否有效:

$mysqli->affected_rows;

但是如何检查哪一列已被修改?

示例,在我的表中有以下列: id /姓名/年龄

在记录中,我们有以下数据: 1 / Woton / 18

如果我发送:UPDATE mytable SET name = 'Woton', age = '20' WHERE id = '1'

年龄字段已更改。我该如何确定?

2 个答案:

答案 0 :(得分:2)

您不能直接从查询结果中获取更新的列。

可以从某些php查询中获取。首先,我们必须从数据库中选择要在数组变量中更新的行。比对同一行运行更新查询。

从新数组变量中的select查询中最后从数据库中获得同一行。

最后我们得到两个数组。

我们可以使用array_diff_assoc php函数获取更新的列。

请参见以下代码。

library(vecsets)
q <- c("a", "b")

p1 <- c("a", "b")
vunion(p1, q, multiple = TRUE)
[1] "a" "b" 

p2 <- c("a", "a", "b")
vunion(p2, q, multiple = TRUE)
[1] "a" "b" "a"

答案 1 :(得分:1)

另一注:如果已在数据库中启用QueryLog,则您(或您的PHP或Python脚本或其他脚本)可以轻松查看/读取内容的哪一部分已更新,甚至可以监视数据库。

好消息是,即使您可以定位哪个表,哪个查询等。