不想将值写入数据库

时间:2015-08-28 06:13:16

标签: php mysql

有一个脚本会ping“ip_address”列中的所有ip地址,我需要在他在“status”列中写入的报告后ping。即如果计算机处于联机状态,则在“status”列中写入值1,如果脱机数据库设置为0.示例:

http://i.stack.imgur.com/BTiAT.jpg

他不想写这个值。这是我的剧本:

<?php
include('db.php');
foreach($test as $value){
    exec("ping -c 4 " . $value->ip_address, $output, $result);
    if ($result == 0) {
        $insert_sql = "INSERT INTO test ('status')VALUES('1');";
     }else{ 
    $insert_sql = "INSERT INTO test ('status')VALUES('0');";
}
    echo "<br/>" . $insert_sql;
    }
?>

这就是:

http://i.stack.imgur.com/6vfyu.png

UPD:

<?php
include('db.php');
foreach($test as $value){
    exec("ping -c 4 " . $value->ip_address, $output, $result);
    if ($result == 0) {
        $insert_sql = "update test set status='1' where ip_addres = '".$value->ip_address."'";
        mysqli_query($insert_sql);
     }else{ 
        $insert_sql = "update test set status='0' where ip_addres = '".$value->ip_address."'";
        mysqli_query($insert_sql);
}
    }
?>

那是对的吗?

3 个答案:

答案 0 :(得分:0)

您必须使用更新语法:

<?php
include('db.php');
foreach($test as $value){
    exec("ping -c 4 " . $value->ip_address, $output, $result);
    if ($result == 0) {
        $insert_sql = "update test set status='1' where ip_addres = '".$value->ip_address."'";
     }else{ 
        $insert_sql = "update test set status='0' where ip_addres = '".$value->ip_address."'";
}
    echo "<br/>" . $insert_sql;
    }
?>

并且不要在列名称周围使用单个qoutes。单引号仅适用于字符值。如果你必须转义列名,你必须使用反引号。

答案 1 :(得分:0)

你需要:

  • 初始化与您的mysql数据库的连接,使用和地址,用户名和密码(在您的情况下为netmap.inp.uz)。就像你在HeidiSQL中一样。也许这是在你的db.php文件中完成的。如果不是,请参阅http://php.net/manual/es/function.mysqli-connect.php
  • 而不是(或除了)回显您的查询,您必须msqli_query($ insert_sql),即数据库执行

现在,您只是将语句发送到输出。

答案 2 :(得分:0)

这是您的问题的示例工作代码,请尝试:

$test = array('www.google.com','msn.com','yahoo.com','stackoverflow.com','bhokat.com');

var_dump($test);
foreach ($test as $key => $value) {
    exec("ping -n 1 $value",$output[],$retval);
    if (strlen($output[$key][0]) > 0) {
        $sql = "UPDATE test SET status='1' WHERE ip_address=$value";
    } else {
        $sql = "UPDATE test SET status='1' WHERE ip_address=$value";
    }

    echo "<br/>" ;
}

根据您的需要更改更新查询。如果已经存在,则需要更新该字段,否则可以在if和else部分中添加额外的检查。