尝试通过在 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 天来更新日期字段 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 PDI 中的日期字段上添加条件

Oracle - 更新日期字段

Django:为可重用模型字段创建一个 Mixin

查询日期数组以仅显示未来事件 - PHP

PHP MailChimp生日字段的日期格式 - 格式正确吗?

我想通过代码在 Prestashop 上添加 x 个客户,但有额外的字段