日期差异计数功能无法更新到数据库
Date diff count function not able to update to database
我正在尝试将日期差异更新到 sql 数据库,当我输出 echo $foo
时它显示输出,当我尝试 UPDATE
到数据库时它没有更新并且值为 0
。该列是 total INTEGER(4)
我直接在 SQL 语句上尝试了字符串 total = '53'
- 它有效
我什至在变量 $foo = '24'
上尝试了一个字符串 - 它有效
使用函数不是UPDATING
.
$startingDate = mysqli_real_escape_string($con, $_POST['fm_startingdate']);
$endingDate = mysqli_real_escape_string($con, $_POST['fm_endingdate']);
$foo = timeTotal($startingDate, $endingDate);
function timeTotal($dT1, $dT2){
$d1 = new DateTime($dT1);
$d1->sub(new DateInterval("P1D"));
$d2 = new DateTime($dT2);
$diff = $d1->diff($d2);
echo $diff->days;
}
echo $foo // 53
if(mysqli_num_rows($result) == 0){
$sql = "UPDATE terms SET
name = '$termNameTrimmed',
startingdate = '$startingDate',
endingdate = '$endingDate',
total = '$foo' // <-- this is not updating as expected
WHERE term_id = '$termId'";
if(mysqli_query($con, $sql)){
$_SESSION['success'] = "Updated Successfully!";
header("Location: ../../term_months.php".$URLId);
}
else {
echo "Records are NOT Added. Please try again<br />";
echo mysqli_error ($con);
}
}
else{
$_SESSION['exists'] = "<strong>".$termNameTrimmed."</strong> name is already exists!";
header ("Location: ../../term_month_edit.php".$URLId);
}
问题出在你的函数中,它没有return任何东西,但是 echo,试试:
$foo = timeTotal($startingDate, $endingDate);
function timeTotal($dT1, $dT2){
$d1 = new DateTime($dT1);
$d1->sub(new DateInterval("P1D"));
$d2 = new DateTime($dT2);
$diff = $d1->diff($d2);
return $diff->days; // no echo but return
}
echo $foo // 53
提示:为了调试,在结果前面使用一个字符串:
echo "$foo:". $foo;
在你的情况下它会回显
$foo:0
我正在尝试将日期差异更新到 sql 数据库,当我输出 echo $foo
时它显示输出,当我尝试 UPDATE
到数据库时它没有更新并且值为 0
。该列是 total INTEGER(4)
我直接在 SQL 语句上尝试了字符串 total = '53'
- 它有效
我什至在变量 $foo = '24'
上尝试了一个字符串 - 它有效
使用函数不是UPDATING
.
$startingDate = mysqli_real_escape_string($con, $_POST['fm_startingdate']);
$endingDate = mysqli_real_escape_string($con, $_POST['fm_endingdate']);
$foo = timeTotal($startingDate, $endingDate);
function timeTotal($dT1, $dT2){
$d1 = new DateTime($dT1);
$d1->sub(new DateInterval("P1D"));
$d2 = new DateTime($dT2);
$diff = $d1->diff($d2);
echo $diff->days;
}
echo $foo // 53
if(mysqli_num_rows($result) == 0){
$sql = "UPDATE terms SET
name = '$termNameTrimmed',
startingdate = '$startingDate',
endingdate = '$endingDate',
total = '$foo' // <-- this is not updating as expected
WHERE term_id = '$termId'";
if(mysqli_query($con, $sql)){
$_SESSION['success'] = "Updated Successfully!";
header("Location: ../../term_months.php".$URLId);
}
else {
echo "Records are NOT Added. Please try again<br />";
echo mysqli_error ($con);
}
}
else{
$_SESSION['exists'] = "<strong>".$termNameTrimmed."</strong> name is already exists!";
header ("Location: ../../term_month_edit.php".$URLId);
}
问题出在你的函数中,它没有return任何东西,但是 echo,试试:
$foo = timeTotal($startingDate, $endingDate);
function timeTotal($dT1, $dT2){
$d1 = new DateTime($dT1);
$d1->sub(new DateInterval("P1D"));
$d2 = new DateTime($dT2);
$diff = $d1->diff($d2);
return $diff->days; // no echo but return
}
echo $foo // 53
提示:为了调试,在结果前面使用一个字符串:
echo "$foo:". $foo;
在你的情况下它会回显 $foo:0