Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PDO's lastInsertId cho MySQL một điều kiện cuộc đua?

MySQL không trả lại id chèn cuối cùng của một phiên cho một phiên khác.

http://dev.mysql .com / doc / refman / 5.6 / vi / information-functions.html # function_last-insert-id nói:

Re nhận xét của bạn:

Đây đã là hành vi của MySQL kể từ đầu. Việc trả lại ID chèn cuối cùng sẽ khá vô ích nếu nó dễ bị ảnh hưởng bởi tình trạng chạy đua, tức là nếu các lần chèn trong các phiên khác có thể gây ô nhiễm phiên của bạn.

Một khả năng là bạn đang sử dụng các kết nối liên tục, vì các phiên bản PHP cũ có một lỗi khiến một kết nối có thể được cấp cho một yêu cầu PHP mới và cấp quyền truy cập vào trạng thái phạm vi phiên từ một yêu cầu PHP trước đó. Nói cách khác, những thứ như khóa và giao dịch, bảng tạm thời và biến người dùng và id chèn cuối cùng có thể tồn tại cho một yêu cầu PHP tiếp theo. Những vấn đề này sẽ được giải quyết trong PHP 5.3 với trình điều khiển mysqlnd; kết nối liên tục sẽ được "đặt lại" về trạng thái ban đầu.

Một lời giải thích khác có thể xảy ra là nó thực sự hoạt động bình thường, và bạn đã nhầm lẫn trong quan sát của mình. Vì vậy, tôi khuyên bạn nên thử nghiệm nó một cách cẩn thận và có phương pháp.

cập nhật: theo câu trả lời của bạn , vấn đề này không liên quan gì đến MySQL hoặc PDO hoặc lastInsertId. Có vẻ như bạn hoàn toàn không thấy sự khác biệt trong đầu ra mã PHP của mình, bạn đã thấy những con số không mong đợi về thống kê hiệu suất mạng trong Công cụ nhà phát triển của Chrome.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thêm nút Xóa vào bảng kết quả PHP

  2. In kết quả ở định dạng MySQL bằng Python

  3. Ngăn dữ liệu trùng lặp được nhập vào cơ sở dữ liệu mysql

  4. Làm thế nào để sắp xếp theo ngày trước trong cơ sở dữ liệu?

  5. Sử dụng lời hứa để xử lý giá trị trả về MySQL trong node.js