显示更新的记录SQL PHP

时间:2014-01-14 07:09:17

标签: php mysql

我正在编写一个更新客户表中记录的脚本。

是否有一种优雅的方式来运行更新,只需打印已更新的内容,而不是运行具有相同SELECT功能的其他WHERE CONDITION

我知道如何做的唯一方法是首先进行选择,然后更新选择中的每条记录,然后将其打印出来。

那是:

if(isset($dry_run)) {
    SELECT a, b, c, d FROM customer
}
else {
    UPDATE CUSTOMER set d='blah'
}

如果UPDATE可以返回一个结果集,然后我可以打印出来显示所有更新记录的customer_id,firstname,lastname和email,而无需编写代码并且不会多次访问数据库。这样的事情存在吗?

- 编辑 -

由于共识是否,无法完成 - 有人可以解释为什么SQL无法将更新的行捆绑到一个对象中,然后可以迭代并打印出来吗?

4 个答案:

答案 0 :(得分:1)

为什么需要更新?你应该可以选择这个。例如,假设您要更新customer_id为某个值的记录。您可以为具有该值的行运行select。

答案 1 :(得分:0)

您可以使用选择而不是更新

而不是做

UPDATE table set column1=value1, column2=value2 WHERE conditions

你可以做到

SELECT value1 as column1, value2 as column2 FROM table WHERE conditions

会给你相同的结果。

答案 2 :(得分:0)

反转代码。

if(!isset($dry_run)) {
    UPDATE CUSTOMER set d='blah'
}
SELECT a, b, c, d FROM customer

并回答你的问题。更新和选择操作是不同的。无需阅读整个记录即可更新它们。

如果你想要,写一个执行update和select的MySQL程序。

如果你想知道为什么它在你有光标读写的其他语言中不能用,那么答案就是慢一些。

答案 3 :(得分:0)

如果您从客户端获取数据以进行更新,为什么在更新查询后需要再次获取数据。您已经在请求中获得了数据,并得到回应。