多个更新查询

时间:2015-08-19 13:17:11

标签: php mysql

我在php中编写了两个不同的代码,我想将它与一个代码合并,因为两个代码是相同的,只有UPDATE查询不同。谁能帮我?第二个问题是if条件确实有效,为什么会这样?

代码1:

 <?php

include("Database/connection.php");

$sql = "SELECT *  FROM registration,billing_month";
$result = $link->query($sql);

while ($row = $result->fetch_assoc()) {
    $regid = $row['Reg_id'];
    $duedate = $row['Bill_due_date'];
    $currentbill = $row['Current_Bill'];
    $arrears = $row['Arrears'];
    $updatearrears = $arrears + $currentbill;

    if (date('Y-m-d') > $duedate) {
        $sql_update = "UPDATE  registration SET Arrears= $updatearrears WHERE Reg_id = $regid";

        if (mysqli_query($link, $sql_update)) {
            //   echo "Updated";
        } else {
            // echo "Could not updated";
        }
    }
}
?>

代码2:

   <?php

    include("Database/connection.php");

    $sql = "SELECT *  FROM registration,billing_month";
    $result = $link->query($sql);

    while ($row = $result->fetch_assoc()) {
        $regid = $row['Reg_id'];
        $billingid = $row['Bill_id'];
        $duedate = $row['Bill_due_date'];
        $currentbill = $row['Current_Bill'];
        $updatebill = 0;

        if (date('Y-m-d') > $duedate) {
            $sql_update = "UPDATE  registration SET Current_Bill= $updatebill WHERE Reg_id = $regid";

            if (mysqli_query($link, $sql_update)) {
                //   echo "Updated";
            } else {
                // echo "Could not updated";
            }
        }
    }
    ?>

1 个答案:

答案 0 :(得分:0)

使用strtotime()比较您的数据。还要在您的值中添加引号。

在更新到数据库之前使用

 $updatebill=mysqli_real_escape_string($link,$updatebill);

if (strtotime(date('Y-m-d')) > strtotime($duedate)) 
{
  $sql_update = "UPDATE  `registration` SET `Current_Bill`= '".$updatebill ."' WHERE `Reg_id` = $regid";

}

要检查页面中的错误,请使用

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

并阻止您按sql injection

进行查询