sql >> Base de Datos >  >> RDS >> Mysql

php, el servidor mysql se ha ido

Supongo que su problema es que la secuencia de comandos puede ejecutarse durante mucho tiempo antes de enviar la primera consulta de ACTUALIZACIÓN.

Debe comprobar el valor de wait_timeout en my.cnf. Puede verificar su espera_tiempo de espera ejecutando la consulta "MOSTRAR VARIABLES;"

También puede probar un fragmento de código para hacer una reconexión:

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

Combinando con su código sería:

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