【发布时间】:2013-11-26 13:52:09
【问题描述】:
我正在尝试寻找最佳和最有效的方法来通过使用 PHP 的表单更改给定表中的数据。
该场景是一个表中的项目列表,如果您右键单击->编辑一个项目,则会向 MySQL 请求所有数据并填充字段。
用户可以更改或保留任何字段中的数据不变,然后按保存将所有内容发送回 PHP。
简单的方法是只更新所有列,无论它们是否已更改,即:
$this->model->set('name', 'some name string from the form', $itemId);
$this->model->set('price', 'number from the form', $itemId);
...etc...
因此,我可能只更改名称,并使用与收到的数据相同的数据不必要地更新其余列。 (作为一个附带问题,MySQL 是否知道这一点并忽略了幕后的更新?)
执行智能更新的好方法是比较两个数组吗?一个包含原始数据,另一个包含来自用户的数据。如果给定索引的值不匹配,那么它一定已经改变了,更新也是如此?
即一个非常简单的例子:
if($submittedValues['name'] != $originalValues['name'])
{
...Update...
}
【问题讨论】:
标签: php mysql forms performance