我正在开发一个 Web 应用程序项目,并且有一个相当大的 html 表单需要将其数据存储在表中。表单和插入已经完成,但我的客户希望能够将保存的数据加载回 HTML 表单并能够更改它,同样,这没问题,但是我在进行更新时遇到了一个问题,如果它是一个编辑,只保留插入查询然后删除旧行是否合适?
基本上,已经发生的事情是,当提交表单时,所有数据都使用 INSERT 放入表中,如果数据用于正在更新的现有字段,我还有一个名为 edit 的标志,其中包含主键 ID。我可以通过两种方式处理更新功能:
a) 创建一个包含所有字段/数据集的实际更新查询,并使用 if/else 来决定是运行更新查询还是插入查询。
b) 每次都执行插入,但在插入成功后在 DELETE WHERE row=editID 中添加一行。
由于删除只会在插入成功时发生,我不会冒不插入就删除数据的风险,从而丢失数据,但由于插入/删除是两个查询,它会比仅使用 if/ 效率低吗? else 来决定是运行插入还是更新?
有第二个表使用自增 id 作为外键,但是每次提交表单时都必须更新该表,因此如果我删除表 A 中的行,我也会从其中删除关联的行表 b. 这似乎是一种糟糕的编程实践,所以无论如何我都倾向于选项 a),但仅使用单行选项非常诱人。DELETE 基本上如下。这实际上是不好的编程习惯吗?除了惯例之外,还有什么理由说明“永远不要那样做!” 代码类型?
if ($insertFormResults) {
$formId = mysql_insert_id();
echo "Your form was saved successfully.";
if(isset($_POST['edit'])){
$query = "DELETE FROM registerForm WHERE id='$_POST[edit]'";
$result = mysql_query($query);
}
}
Run Code Online (Sandbox Code Playgroud)
虽然 INSERT/DELETE 选项可以很好地工作,但我建议反对它:
| 归档时间: |
|
| 查看次数: |
9114 次 |
| 最近记录: |