मेरे पास एक PHP स्क्रिप्ट है जो एक SELECT क्वेरी चलाती है तो तुरंत रिकॉर्ड हटा देती है। ऐसी कई मशीनें हैं जो एक ही php फ़ाइल को पिंग कर रही हैं और उसी तालिका से डेटा ला रही हैं। प्रत्येक रिमोट मशीन एक क्रॉन नौकरी पर चल रही है।फिर चयन करें MySQL रिकॉर्ड
मेरी समस्या यह है कि कभी-कभी यह ठीक से हटाने में असमर्थ है क्योंकि मशीनों में से कुछ ठीक उसी समय पिंग करते हैं।
मेरा सवाल यह है कि, मैं डेटाबेस से एक रिकॉर्ड कैसे चुन सकता हूं और अगली मशीन इसे पकड़ने से पहले इसे हटा देता हूं। अभी के लिए मैंने अभी थोड़ी देर दे दी है लेकिन यह बहुत अच्छी तरह से काम नहीं कर रहा है। मैंने लेनदेन का उपयोग करने की कोशिश की, लेकिन मुझे नहीं लगता कि यह यहां लागू होता है।
<?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());
?>
सच सहायता की सराहना:
यहाँ मेरी स्क्रिप्ट का एक उदाहरण टुकड़ा है।
यह कैसे लागू नहीं होता है? यह * बिल्कुल * लगता है जैसे लेनदेन के लिए अच्छा है। – mpen
क्या आपको संग्रहीत प्रक्रियाओं का उपयोग करने की अनुमति है? – dvicino
@ मार्क - क्या लेनदेन 'SELECT को ऑपरेटिंग से रोकता है? मैं सोच रहा हूं कि यह समस्या नहीं हो सकती है।@ जॉन - यदि ये 'क्रॉन' द्वारा चलाए जाते हैं, तो 'मर (mysql_error())' बिंदु क्या है? किसी फ़ाइल या किसी चीज़ में त्रुटि लॉग क्यों नहीं करें? –