我有一个服务器端文件,我测试了如果两个或多个用户不小心同时提交表单会发生什么情况。不幸的是,如果两个或多个用户同时按下提交按钮,则只有一个用户成功和其他失败,因为我在form.php中有一个代码,该代码在插入数据库之前具有一代主键,从而导致其他用户出错。如果许多用户同时单击,form.php仅可容纳一个用户。有人可以帮我解决我的问题吗?我使用ajax作为表单提交的触发器。我的问题是,主键中有一个错误,因为PHP文件form.php在插入数据库之前生成了主键,这就是为什么两个或多个用户同时按下Submit导致仅一次成功插入的原因都失败了。
$.ajax({
type: "POST",
url: "form.php",
data: datastring,
success: function(data) {
console.log(data);
alert(data);
},
error: function() {
alert('error handing here');
}
使用交易
try {
$db->beginTransaction();
$db->query('your query');
$db->commit();
} catch (Exception $e) {
$db->rollback();
}