繁体   English   中英

如何在一个 Ajax POST 中插入/更新/删除

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM