[英]How to Insert/Update/Delete in one Ajax POST
我有一个用户可修改的表,从技术上讲,在一个 session 中,用户可以检索以前保存的 session 并插入新行、更新行和删除行。
目前,在保存时,我正在删除之前 session 的所有行,并简单地使用 INSERT 重新添加所有行(参见下面的代码)。
虽然这行得通,但它似乎在某种程度上是错误的。 我在想我应该使用 INSERT、UPDATE 和 DELETE 的组合来正确执行此操作? 最好的方法是什么? 是否可以通过单个 Ajax POST 完成,如果可以,我是否可以根据插入、更新、删除的需要执行三个单独的查询? 当然,这意味着要尝试跟踪 session 中每一行的状态。 我希望有一种简单(推荐)的方法来做到这一点。 感谢您提供的任何方向。
$sql_delete = "DELETE FROM worksheet_1_1b WHERE user_id = '$user_id'";
$result = mysqli_query($dbc, $sql_delete);
$sql_insert = "INSERT INTO worksheet_1_1b (user_id, key_position, area, ro, span, criteria1, criteria2, criteria3, urgency) VALUES ('$user_id','$key_position','$area','$ro','$span','$criteria1','$criteria2','$criteria3','$urgency' )";
$result = mysqli_query($dbc, $sql_update);
在这里吐口水:我认为这是一个架构的可靠案例,它利用两种方式绑定(想到 Angular)来保持 DB 与 UI 同步。
但是,如果您决定通过 AJAX 调用来运行它,您可以相当容易地将所有 CRUD 请求包装到单个data
object 中,然后从那里解析它(在从$_POST
检索它之后),确保转义您的值并将它们插入参数化查询以改善基于 SQL 注入的攻击向量。
像这样的数据结构
{data=
{
create={
/*some data in whatever format*/
},
update={
/*some data in whatever format*/
},
delete={
/*some data in whatever format*/
}
}
}
例如,将是一个选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.