dqq46733 2015-06-04 03:00
浏览 51

ping webserver并存储在mysql数据库中

Trying to ping a server using

function pingDomain($domain){
    $starttime = microtime(true);
    $file      = fsockopen ($domain, 80, $errno, $errstr, 10);
    $stoptime  = microtime(true);
    $status    = 0;

if (!$file) $status = -1;  // Site is down
else {
    fclose($file);
    $status = ($stoptime - $starttime) * 1000;
    $status = floor($status);
}
return $status;
}

And I'm now trying to pass that variable off to a mysql database, to record the attempts. What would be the best way to do this?

  • 写回答

1条回答 默认 最新

  • doujiaohuo1096 2015-06-04 07:43
    关注

    Create a table in your DB with the following columns:

    • ID - INT - Auto incrementing
    • duration - BIGINT
    • timestamp - TIMESTAMP - set to NOW() on insert

    Then, firstly, connect to the database:

    $server = 'localhost';
    $username = 'your_username_here';
    $password = 'your_password_here';
    $database = 'your_db';
    try 
    {
        $db = new PDO("mysql:host=$server;dbname=$database;charset=UTF8", $username , $password );
    }
    
    catch (PDOException $e) 
    {
        print "Error!: " . $e->getMessage() . "<br/>";
        die();
    }
    

    then insert the row like so:

    $query = $db->prepare("INSERT INTO the_table_name (duration) VALUES (:duration)");
    $query->execute(Array(":duration" => $status));
    

    I think this should work just fine.

    评论

报告相同问题?