声明:原创文章,转载请标明出处!
在数据库中主键自增的情况下,有时我们需要获取本次插入的id,laravel中给我们提供了DB::getPdo()->lastInsertId()这个方法(真的很方便)!
当我们在用的顺其自然的时候,不知道是不是想过这个id会不会“混乱”或者“冲突”,不知道这个方法是基于数据库还是客户端浏览器的,下面开始我自己的测试:
图一
图二
在浏览器分别调用这个两个方法后我们发现:图一返回实际ID,图二则一直返回0
经过测试我们可以断定DB::getPdo()->lastInsertId()这个方法不是基于数据库来获取的id;
但是,我们又考虑到线程并发的情况下,能不能保证我们拿到正确的id呢,改进方法后,下面我们继续进行测试:
图三
图四
我们先用postman进行传参为1测试,保证是在插入方法执行后,再在浏览器传参为2进行测试;
从测试结果我们可以看到,即使在并发的情况下,DB::getPdo()->lastInsertId()返回的id也是正常使用的,并没有“混乱”的一说!
请放心大胆的使用!
声明:原创文章,转载请标明出处!
写自己的代码,送给那些曾经瞧不起你的人!
----------------------lonelykeyboard
2019.01.25