尝试通过在 PHP 上添加 1 天来更新日期字段 [重复]
Posted
技术标签:
【中文标题】尝试通过在 PHP 上添加 1 天来更新日期字段 [重复]【英文标题】:Trying to update date field by adding 1 day on PHP [duplicate] 【发布时间】:2021-05-09 08:13:03 【问题描述】:我想要的是通过添加一天来更新我的预订表的到达日期。我尝试的是以下内容:
$reservationId=$_GET['reservationId'];
$getArrivaldate="SELECT arrival_date from reservations WHERE reservation_id=$reservationId;";
$getArrivalResult=mysqli_query($conn,$getArrivaldate);
$rowArrivalDate=mysqli_fetch_array($getArrivalResult);
$arrivalDate=$rowArrivalDate['arrival_date'];
$newArrivalDate=date('Y-m-d',strtotime($arrivalDate . "+1 days"));
$noShowReservation="UPDATE reservations SET $arrivalDate = $newArrivalDate WHERE reservation_id=$reservationId ;";
if(mysqli_query($conn,$noShowReservation))
header("Location:../public/home.php?reservation=moved");
exit();
else
echo"ERROR";
但是当我在 xammp 上执行查询时,我收到错误“#1064 - 您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本相对应的手册,以了解在 ''2021-02 附近使用的正确语法-05' = '2021-02-06' WHERE reservation_id=104' at line 1".. 我在这里错过了什么?
【问题讨论】:
在您的更新查询中,您有$arrivalDate
但这不是列名。使用arrival_date
,但请参阅下面 Gab 的回答。
请学习使用prepared statements,将变量插入字符串不是如何构建SQL查询。当您不记得在事物周围加上引号时,它是不安全的并且会导致问题。我也强烈建议不要使用 mysqli;它从来都不是为直接使用而设计的,而且是不必要的迟钝和冗长。
【参考方案1】:
你可以直接在 MySQL 中做:
UPDATE reservations
SET arrival_date = arrival_date + INTERVAL 1 DAY
WHERE reservation_id = 1
【讨论】:
打败我吧.. :(以上是关于尝试通过在 PHP 上添加 1 天来更新日期字段 [重复]的主要内容,如果未能解决你的问题,请参考以下文章