我在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";
}
}
}
?>
答案 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
进行查询