gpt4 book ai didi

php - 仅更新或插入更改的列

转载 作者:行者123 更新时间:2023-11-30 23:10:03 24 4
gpt4 key购买 nike

我正在尝试通过使用 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 代码中还是使用 javascript,而不是将所有东西都发送到服务器,只发送改变的值。

但一般来说,我不会关心是否重置所有数据,再次影响所有字段的过程可能比比较数组中的新旧数据更快,如果我要进行很多查询,我会非常小心数据库,但它只有一个更新查询


测试中有趣的是,当用户将字段留空时,请求将发送一个空字符串,最后更新请求将插入一个空字符串,其中 NULL值会有更好的意义

关于php - 仅更新或插入更改的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20218936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com