-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 == "...") {
    // ...
}

また、補足として、インターネット接続が確立されていても DNS サービスにアクセスできない場合は、@fsockopen嘘をつきます。このため4.2.2.4、何かにpingを送信して、できるかどうかを確認することを常に好みます...

于 2013-10-03T04:58:16.347 に答える