php - (CRUD) 如何从 html 行中知道要定位哪些数据库记录
问题描述
一直在谷歌搜索并尝试各种事情,但仍然无法弄清楚。
假设我有一个 html 表单,其中有一个带有行(和输入字段)的表格。这些行已由数据库(mysql)数据填充。它是带有日记帐行的日记帐。
当用户更改某些表行的一个或多个值并随后按下保存按钮时,我只想更改数据库中受影响的行。
一段时间以来一直在使用 delete * from table,然后重新插入所有表行。粗鲁,但现在它有效。(但自动增量 ID 快速上升,其他表中的相关行有时会引发问题)
整个问题是我不喜欢将记录的 ID 发送给客户端并在按下保存按钮时将其发回的想法。除其他想法外,我认为内部 SQL ID 不属于客户端。
一定有另一种方法,而且以前一定有人做过,对吧?
当然,您可以做一些事情,例如跟踪客户端中的更改,使用 UUID(将它们插入表中并将其作为临时 ID 发送到客户端)或在客户端和表中保留行号。但这需要大量工作,并且感觉要么缓慢(呃)要么麻烦。
当您让用户在 html 表中添加或删除行并处理更改数据库中的行时,肯定会变得更糟
有人对我有任何指示吗?我将不胜感激。
解决方案
我这样做的方法是CLIENT_ID
在我的模式中添加一列(或类似的东西),这将是一个生成uuid
的并将其与其余数据一起发送给客户端,然后在用户点击时将其发送回来Save
。这样您就不必公开内部 SQL ID,但您仍然可以识别数据库中的某些条目。我不确定您是否可以在不向客户端发送某种 ID 然后返回服务器的情况下执行此操作,即使可以,是否值得付出努力?
推荐阅读
- r - tbl函数和data.frame有什么区别?
- android - 从 NYT API 获取 LARGE 嵌套的 Json
- json - ngFor 使用未知键迭代 json 子数组
- c++ - glFrustum 没有创建透视图
- angular - 循环时无法访问 Angular API 响应
- javascript - 使用缩放 css 时的边缘浏览器问题
- python-3.x - 将 9.90000000e+01 更改为 numpy nans
- java - 如何使用 GridLayout 和多个面板?
- html - 批量 base64 图像解码
- java - 模拟静态方法+运行参数化测试=“找不到匹配”