-3

我只想在互联网正常工作时更新 mysql 字段.....要检查互联网,我的脚本是

<?php 
//function to check if the local machine has internet connection 
function checkConnection() 
{ 
    //Initiates a socket connection to www.itechroom.com at port 80
    $conn = @fsockopen("www.google.com", 80, $errno, $errstr, 30); 
    if ($conn)
    { 
        $status = "Connection is OK";  
        fclose($conn);
    }
    else
    {
        $status = "NO Connection<br/>\n";
        $status .= "$errstr ($errno)"; 
    }
    return $status; 
}

echo checkConnection();
?> 

如果连接正常,我想运行此查询,否则不要运行它

    <?php
/////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////
$con=mysqli_connect("localhost","root","","ex_smartcard2013");

if (mysqli_connect_errno())
  { 
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

mysqli_query($con,"UPDATE fess SET status=1 WHERE status=0 order by id desc limit 1");
mysqli_close($con);

?>

那怎么办…………

4

2 回答 2

2

使用这样的功能。

<?php
//function to check if the local machine has internet connection 
function checkConnection() 
{ 
    //Initiates a socket connection to www.itechroom.com at port 80
    $conn = @fsockopen("www.google.com", 80, $errno, $errstr, 30); 
    if ($conn)
    { 
        $status = true;  
    }
    else
    {
        $status = false;
        //$status .= "$errstr ($errno)"; 
    }
    fclose($conn);

    return $status; 
}

if(checkConnection()) {

    $con=mysqli_connect("localhost","root","","ex_smartcard2013");

    if (mysqli_connect_errno())
    { 
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    mysqli_query($con,"UPDATE fess SET status=1 WHERE status=0 order by id desc limit 1");
    mysqli_close($con);

}
?> 
于 2013-10-03T04:33:18.103 回答
0

修改Salim 的答案JTC 的符号,我们得到

function checkConnection() {
    return $conn = @fsockopen("www.google.com", [80|443]);
}

if (checkConnection()) {
    $con = mysqli_connect(...);
    // the rest is yours
}

如果您更喜欢使用您自己checkConnection()的,那么只需测试适当的条件。你希望它返回什么?

$hasInternet = checkConnection();

if ($hasInternet == "...") {
    // ...
}

另附注:如果您的 Internet 连接已启动,但您无法访问 DNS 服务,@fsockopen则会对您撒谎。出于这个原因,我总是更喜欢4.2.2.4在 ping 某些东西时,看看我是否可以......

于 2013-10-03T04:58:16.347 回答