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



我有一个用户可修改的表,从技术上讲,在一个会话中,用户可以检索以前保存的会话并插入新行、更新行和删除行。

当前,在保存时,我删除了前一个会话的所有行,并简单地使用INSERT重新添加所有行(参见下面的代码)。

虽然这是有效的,但它似乎是错误的。我认为我应该使用INSERT、UPDATE和DELETE的组合来正确地做到这一点?最好的方法是什么?它是否可以通过一个Ajax POST完成,如果可以,那么我是否需要根据INSERT、UPDATE、DELETE的需要执行三个单独的查询?当然,这意味着要在整个会话中跟踪每一行的状态。我希望有一个简单的(推荐的)方法来做到这一点。谢谢你提供的任何指示。

$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对象中,然后从那里解析它(在从$_POST检索之后),确保转义您的值并将它们插入参数化查询中,以改善基于SQL注入的攻击向量。

这样的数据结构
{data=
{
create={
/*some data in whatever format*/
},
update={
/*some data in whatever format*/
},
delete={
/*some data in whatever format*/
}
}
}

例如,就是一个选项。

相关内容

  • 没有找到相关文章

最新更新