sql >> Database teknologi >  >> RDS >> Mysql

php, mysql-serveren er gået væk

Jeg antager, at dit problem er, at scriptet kan køre i meget lang tid, før den første UPDATE-forespørgsel sendes.

Du bør tjekke wait_timeout-værdien i my.cnf. Du kan tjekke din wait_timeout ved at køre forespørgslen "VIS VARIABLER;"

Du kan også prøve at stykke kode for at oprette en genforbindelse:

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

Ved at kombinere med din kode ville det være:

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. 27 oracle dba scripts til Oracle Database til administration og overvågning

  2. MySql-fejl 150 - Fremmednøgler

  3. Brug psql's \copy til en forespørgsel med flere linjer

  4. Gennemtving en begrænsning med fremmednøgle til kolonner i samme tabel