Tôi có một tập lệnh PHP chạy truy vấn SELECT rồi xóa ngay hồ sơ. Có nhiều máy đang ping cùng một tập tin php và lấy dữ liệu từ cùng một bảng. Mỗi máy từ xa đang chạy trên một công việc cron.CHỌN rồi ngay lập tức XÓA hồ sơ mysql
Vấn đề của tôi là đôi khi nó không thể xóa đủ nhanh vì một số máy ping cùng một lúc.
Câu hỏi của tôi là, làm cách nào tôi có thể chọn bản ghi từ cơ sở dữ liệu và xóa nó trước khi máy tiếp theo lấy nó. Ngay bây giờ tôi chỉ thêm một sự chậm trễ ngắn nhưng nó không hoạt động rất tốt. Tôi đã thử sử dụng một giao dịch, nhưng tôi không nghĩ rằng nó được áp dụng ở đây.
Dưới đây là một đoạn mã ví dụ về kịch bản của tôi:
<?php
$query = "SELECT * FROM `queue` LIMIT 1";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$email = $row['email'];
$campaign_id = $row['campaign'];
}
$queryx = "DELETE FROM `queue` WHERE `email` = '".$email."'";
$resultx = mysql_query($queryx) or die(mysql_error());
?>
Thật đánh giá cao sự giúp đỡ.
nó không được áp dụng như thế nào? âm thanh * chính xác * giống như giao dịch tốt. – mpen
Bạn có được phép sử dụng các thủ tục được lưu trữ không? – dvicino
@Mark - Các giao dịch có còn ngăn 'SELECT' hoạt động không? Tôi tự hỏi nếu điều này có thể không phải là vấn đề[email protected] john - Nếu chúng được chạy bởi 'cron', điểm chết của' mysql_error()) 'là gì? Tại sao không đăng nhập lỗi vào một tập tin hoặc một cái gì đó? –