sql >> Databasteknik >  >> RDS >> Mysql

php, mysql-servern har försvunnit

Jag antar att ditt problem är att skriptet kan köras under en mycket lång tid innan den första UPPDATERINGSfrågan skickas.

Du bör kontrollera wait_timeout-värdet i my.cnf. Du kan kontrollera din wait_timeout genom att köra frågan "VISA VARIABLER;"

Du kan också försöka med en kodbit för att göra en återanslutning:

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);
}

Om du kombinerar med din kod blir det:

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'");
    }
}


  1. LIMIT 10..20 i SQL Server

  2. Hur felsöker man en fråga i extbase?

  3. Filtrera varningsloggar i EM13c

  4. MySQL -PHP infoga DATETIME