Trong ứng dụng có lưu lượng truy cập cao, có thể cho mysqli_insert_id()
trả lại id không đúng hoặc để nhầm lẫn giữa hai số INSERT
các truy vấn được thực hiện gần như đồng thời không?Có thể cho mysqli_insert_id trả lại id không chính xác trong các ứng dụng lưu lượng truy cập cao không?
Trả lời
No. mysqli_insert_id
trả về giá trị AUTO_INCREMENT
gần đây nhất từ truy vấn mới nhất INSERT
trên kết nối hiện tại. Nó sẽ không bao giờ bị lẫn lộn với kết nối khác, ví dụ.
No. Làm cách nào để tôi chắc chắn? Bởi vì nó đã được báo cáo và cố định một thời gian dài dài.
Trích dẫn từ một câu trả lời trước với cùng câu hỏi này chính xác:
Nhìn vào http://dev.mysql.com/doc/refman/5.6/en/getting-unique-id.html để biết thêm thông tin, nó nói này:
"Đối với LAST_INSERT_ID(), ID được tạo gần đây nhất được duy trì trong máy chủ trên cơ sở mỗi kết nối.Nó không bị thay đổi bởi một khách hàng khác .Nó thậm chí không thay đổi nếu bạn cập nhật cột AUTO_INCREMENT khác với giá trị không phải là ma thuật (nghĩa là giá trị không phải là NULL và không phải 0) Sử dụng LAST_INSERT_ID() và AUTO_INCREM ENT cột đồng thời từ nhiều khách hàng là hoàn toàn hợp lệ. Mỗi khách hàng sẽ nhận được ID chèn vào cuối cùng cho báo cáo kết quả cuối cùng mà khách hàng thực thi."
Vì vậy, bạn nên sử dụng tốt làm những gì bạn muốn và bạn không nên có được kết quả kỳ lạ.
- 1. Chuẩn hóa hoặc Không chuẩn hóa trong các trang web có lưu lượng truy cập cao
- 2. Bạn có thể lưu trữ id phiên trong localStorage không?
- 3. Việc ủy quyền lưu lượng truy cập HTTPS thông qua Fiddler không thành công cho các ứng dụng từ xa?
- 4. Tại sao nên sử dụng Phiên để lưu trữ trạng thái trong các trang web lưu lượng truy cập cao?
- 5. Truy vấn LINQ trả về kết quả không chính xác
- 6. Thanh toán trong ứng dụng Android v3 không trả lại giá địa phương chính xác (getSkuDetails)
- 7. giải pháp cơ sở dữ liệu web tốt nhất cho scala cho trang web có lưu lượng truy cập cao?
- 8. Cờ trong VB6 không trả lại giá trị chính xác
- 9. Truy cập chính xác các giới hạn VB6
- 10. C# - Chụp lưu lượng truy cập mạng
- 11. .NET trả lại tên người dùng không chính xác
- 12. Selenium - Đợi lưu lượng truy cập mạng
- 13. Tại sao ListView.getCheckedItemPositions() không trả lại giá trị chính xác?
- 14. Các tiêu đề chính xác cho ứng dụng PHP RESTful?
- 15. Không thể nhận Fiddler để lưu lượng truy cập cục bộ vào IIS
- 16. Các truy vấn cập nhật mysqli có nên trả lại kết quả không?
- 17. Plugin firefox ghi lưu lượng truy cập
- 18. Tiện ích con Android không cập nhật - có ID tiện ích không chính xác
- 19. Báo cáo ứng dụng không chính xác Cách sử dụng/Lưu trữ
- 20. HPET có thể truy cập trực tiếp trong Windows không?
- 21. Tôi có nên sử dụng haml hoặc erb hoặc erubis cho trang web có lưu lượng truy cập tiềm năng cao không?
- 22. Có thể truy cập dữ liệu cũ trong CouchDB không?
- 23. Không thể truy cập Tomcat 6 Quản lý ứng dụng
- 24. Bạn sẽ chọn khung thời gian thực nào cho ứng dụng web có lưu lượng truy cập cao và tại sao?
- 25. Xem getVisibility() isShown() trả lại hiển thị không chính xác
- 26. Tại sao "pageCount" không chính xác được trả lại bằng API Google Sách?
- 27. Các câu hỏi về lưu trữ cho ứng dụng đường ray "cao"
- 28. Fiddler không đánh hơi lưu lượng truy cập SOAP từ trang web ASP.NET
- 29. Lưu ý mã hóa lưu lượng ASP.NET MVC cao
- 30. ID ứng dụng không hợp lệ: ID ứng dụng không hợp lệ trên trang có fbml
đẹp câu hỏi 1 – tomexsans
FYI đây được gọi là [* Điều kiện Race *] (http://en.wikipedia.org/wiki/Race_condition) –