Nếu không biết số dòng trong mã của bạn, thật khó để biết nhưng bạn thực hiện giao dịch của mình ở cuối khối try-catch đầu tiên và sau đó tiếp tục mà không bắt đầu giao dịch mới trong khối try-catch thứ hai của mình.
Thêm $conn->beginTransaction();
ở đầu khối thử bắt thứ hai của bạn.
CHỈNH SỬA -Bạn đề cập đến "Tôi chỉ muốn số tự động tăng không thêm khi xảy ra lỗi". Bạn không nên dựa vào tính năng tăng tự động để tạo chuỗi số "không có khoảng trống".