Về cơ bản, tôi có tập lệnh này mất nhiều thời gian để thực thi và đôi khi hết giờ và để lại dữ liệu bán hoàn chỉnh trên cơ sở dữ liệu của tôi. (Vâng, tôi biết trong một thế giới hoàn hảo tôi sẽ khắc phục điều đó thay vì thực hiện các cam kết và rollbacks nhưng tôi buộc phải không làm điều đó)Làm cách nào để triển khai cam kết/khôi phục cho MySQL trong PHP?
Đây là mã của tôi cơ bản (dumbed xuống vì đơn giản):
$database = new PDO("mysql:host=host;dbname=mysql_db","username","password");
while (notDone())
{
$add_row = $database->prepare("INSERT INTO table (columns) VALUES (?)");
$add_row->execute(array('values'));
//PROCESSING STUFF THAT TAKES A LONG TIME GOES HERE
}
$database = null;
Vì vậy, vấn đề của tôi là nếu điều đó nếu toàn bộ quá trình trong vòng lặp while đó không hoàn thành thì tôi không muốn hàng chèn vào vẫn còn đó. Tôi nghĩ rằng bằng cách nào đó tôi có thể sử dụng cam kết/rollbacks ở đầu và cuối của vòng lặp while để làm điều này nhưng không biết làm thế nào.
Cảm ơn, tôi đã không thử nó chưa nhưng tôi nghĩ rằng đó là chính xác những gì tôi đang tìm kiếm –