php - 当两个或三个用户同时请求时,我就会有重复的 ID

标签 php mysql laravel-5

当两个或三个用户同时请求它在数据库中存储重复的 ID 时,我获取最后一个 ID 并将其递增并将其存储为发票的第二个 ID。这是代码

$id_num = DB::table('slips')->latest('id')->first();
$now = \jDate::forge('now')->format('date');
$old = $id_num->date;
$slep_id = 0;

 if($now>$old){
    $slep_id = 1;
}
else{
    $slep_id = $id_num->id_num+1;
}
$formatted_slep = sprintf("%04d",$slep_id);

现在,当我将其存储在数据库中时,有时它会重复

$slip = new Slip;
$slip->id = $formatted_slep;
$slip->save();

最佳答案

使用交易:

DB::transaction(function () {
   $slip = new Slip;
   $slip->id = $formatted_slep;
   $slip->save();
});

关于php - 当两个或三个用户同时请求时,我就会有重复的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44899213/

相关文章:

php - 将字符串与 MySQL 列进行比较

php - Cakephp SMTP 电子邮件语法错误

javascript - 使用 js 变量作为将在 php 查询中使用的 html 表单

php - Laravel 5.2 - 登录不工作

php - Laravel:未找到 Layouts.master

javascript - Wordpress 音频列表 - 从标题中删除逗号

mysql - 如何使用 linux 命令行对远程数据库执行 "INSERT INTO"查询?

PHP、Mysql聊天应用程序。我不知道

php - Laravel - 模型类,覆盖主要方法

php - 带有 Vagrant 的 LEMP 堆栈 - 无法安装 Php5-fpm/Nginx?