मुझे लगता है कि आपकी समस्या यह है कि पहली अद्यतन क्वेरी भेजने से पहले स्क्रिप्ट बहुत लंबे समय तक निष्पादित हो सकती है।
आपको my.cnf में Wait_timeout मान की जांच करनी चाहिए। आप क्वेरी "शो वेरिएबल्स" चलाकर अपने प्रतीक्षा_समय की जांच कर सकते हैं;
आप पुन:कनेक्ट करने के लिए कोड के टुकड़े का प्रयास भी कर सकते हैं:
if (!mysql_ping ($conn)) {
//here is the major trick, you have to close the connection (even though its not currently working) for it to recreate properly.
mysql_close($conn);
$conn = mysql_connect('localhost','user','pass');
mysql_select_db('db',$conn);
}
आपके कोड के साथ संयोजन यह होगा:
mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
mysql_select_db("xxx") or die(mysql_error());
$sql = mysql_query("SELECT id FROM db");
while ($data = mysql_fetch_assoc($sql)) {
if (!mysql_ping ()) {
//here is the major trick, you have to close the connection (even though its not currently working) for it to recreate properly.
mysql_close();
mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
mysql_select_db("xxx") or die(mysql_error());
}
$ids[] = $data['id'];
$content = file_get_contents("http://www.id.com/?id=$id");
if (stristr($content, "the id is ok man")) {
mysql_query("UPDATE db SET status = 'OK' WHERE id = '$id'");
}
}