php - 试图将字符串更改为 Date PHP
问题描述
我正在设计一个租用派对装备的网站。基本上我想看看某个项目在某个日期范围内是否可用。用户在表单中输入日期,并检查该项目在此日期范围内是否可用
foreach ($_SESSION['cart'] as $item)
{
$q = "SELECT quan_on_hand, equip_description FROM equipment where equip_id =".$item['id'];
$result = $db->query($q);
$row = mysqli_fetch_assoc($result);
$quantity_available = $row['quan_on_hand'];
$equip_description = $row['equip_description'];
$q = "SELECT SUM (quantity) AS 'TotalRented' from orders, order_details";
$q .= "where equip_id =".$item['id']." AND order_details.order_ID = orders.order_id AND ";
$q .= "(( start_date >=".$start_date." AND end_date <= ".$end_date.") OR (start_date <= ".$start_date." AND end_date >= ".$end_date;
$q .= ") OR ( start_date <= ".$end_date." AND end_date >= ".$end_date.") OR (start_date <= ".$start_date." AND end_date >= ".$start_date."));";
我认为问题在于变量 $start_date 和 $end_date 是字符串,因此无法在 mysql 查询中进行比较。数据以 YYYY-MM-DD 的形式存储在 mysql 中。
基本上我如何将日期字符串更改为这种格式的日期对象,以便可以在 mysql 查询中进行比较
我回显了代码并将其直接放入我的 mysql 数据库中,这就是我得到的输出
SELECT SUM(quantity) AS 'TotalRented' from orders, order_details where equip_id =12 AND order_details.order_ID = orders.order_id AND (( start_date >=2021-03-04 AND end_date <= 2021-03-12) OR (start_date <= 2021-03-04 AND end_date >= 2021-03-12) OR ( start_date <= 2021-03-12 AND end_date >= 2021-03-12) OR (start_date <= 2021-03-04 AND end_date >= 2021-03-04));
当我将它放入我的 mysql 数据库时它不起作用,因为我需要在日期周围加上引号,我如何在我的 php 代码中执行此操作以便它会自动输入
解决方案
要添加单引号,只需将它们放在双引号之外。
$q = "SELECT SUM (quantity) AS 'TotalRented' from orders, order_details ";
$q .= "where equip_id =".$item['id']." AND order_details.order_ID = orders.order_id AND ";
$q .= "(( start_date >= '".$start_date."' AND end_date <= '".$end_date."') OR (start_date <= '".$start_date."' AND end_date >= '".$end_date;
$q .= "') OR ( start_date <= '".$end_date."' AND end_date >= '".$end_date."') OR (start_date <= '".$start_date."' AND end_date >= '".$start_date."'));";
推荐阅读
- asp.net - 使用 asp .net core 3 的 Web 安全审计问题
- notepad++ - Notepad++ - 关闭选项卡时如何重新启用 alt+n 快捷方式
- docker - 如何保留 Jenkins 制作的本地 docker 镜像?
- python - 我的 bat 文件没有为“使用 python 自动化无聊的东西”的第 6 章中的 Password Locker 项目运行 pause.exe
- python - 完全迷失了如何实现保存/加载功能(初学者!!)
- c - 如何将 recvfrom() 中的缓冲区值保存到数组中?
- javascript - 如何遍历第 3 方解析器生成的 AST?
- c# - Visual Studio 坚持要我添加对已安装 NuGet 包的旧版本的引用
- c# - 具有多个 from 子句的 Lambda LINQ 查询
- javascript - 自定义拖放实现