日期字段和日期字符串php mysql之间的比较
我在做一个搜索,搜索效果很好。查询中唯一给我带来问题的部分是当我 比较日期((LiveTrip.TripDate)>=日期(?) 它没有给我一个错误,只是没有带回我用HeidiSQL测试过的任何东西,而且它可以工作。日期以YYYY-MM-DD的格式发布。比较字段在数据库中具有日期数据类型。有什么建议吗日期字段和日期字符串php mysql之间的比较,php,mysql,Php,Mysql,我在做一个搜索,搜索效果很好。查询中唯一给我带来问题的部分是当我 比较日期((LiveTrip.TripDate)>=日期(?) 它没有给我一个错误,只是没有带回我用HeidiSQL测试过的任何东西,而且它可以工作。日期以YYYY-MM-DD的格式发布。比较字段在数据库中具有日期数据类型。有什么建议吗 $Limit = $_POST['limit']; $Offset = $_POST['offset']; $TripType = $_POST['TripType']; $datesea
$Limit = $_POST['limit'];
$Offset = $_POST['offset'];
$TripType = $_POST['TripType'];
$datesearch = $_POST['datesearch'];
$Departure = "%{$_POST['Departure']}%";
$Destination= "%{$_POST['Destination']}%";
$stmt = $conn->prepare("SELECT
UsersMain.Id,
UsersMain.Name,
UsersMain.Surname,
LiveTrip.Id,
LiveTrip.DepstreetAddress,
LiveTrip.DepSubTown,
LiveTrip.DestStreetAddress,
LiveTrip.DestSubTown,
LiveTrip.SeatsAvailable,
LiveTrip.TripDate,
LiveTrip.TripTime,
LiveTrip.Contribution,
LiveTrip.Comments
FROM
LiveTrip
INNER JOIN UsersMain ON UsersMain.Id = LiveTrip.UserId
WHERE
LiveTrip.DepSubTown like ?
AND
LiveTrip.DestSubTown like ?
AND LiveTrip.TripStatus =1 AND DATE((LiveTrip.TripDate) >= DATE(?)) AND TripType=? LIMIT ? OFFSET?");
$stmt->bind_param("ssssss",$Departure, $Destination, $TripType,$datesearch, $Limit, $Offset);
/* execute query */
$stmt->execute();
/* Store the result (to get properties) */
$stmt->store_result();
/* Get the number of rows */
$num_of_rows = $stmt->num_rows;
$stmt->bind_result($id,$Name,$Surname,$Tid,$DepstreetAddress,$DepSubTown,$DestStreetAddress,$DestSubTown,$Seats,$TripDate,$TripTime,$Contribution,$Comment);
在
?
和like
之间加上空格,就像在like?
中一样,你看不到任何错误,因为你没有寻找它们!!!添加ini\u集('display\u errors',1);ini_集(“日志错误”,1);错误报告(E_全部);mysqli_报告(mysqli_报告错误| mysqli_报告严格)代码>到脚本的顶部。这将强制任何mysqli\uuu
错误生成一个您不能错过或忽略的异常。您的参数不是顺序错误吗?就我所见,它应该是…$datesearch,$TripType…
,而不是…$TripType,$datesearch…
。此外,在查询的这一部分,括号没有关闭好:DATE((LiveTrip.TripDate)>=DATE(?)
如果LiveTrip.TripDate
的类型为DATE
,变量$datesearch
将包含格式为YYYY-MM-DD
的字符串,那么比较应该非常简单:LiveTrip.TripDate>=?
。无需强制转换,只需确保$datesearch
格式正确。在?
和like
之间留出空格,就像在like?
中一样,您不会看到任何错误,因为您没有查找它们!!!添加ini\u集('display\u errors',1);ini_集(“日志错误”,1);错误报告(E_全部);mysqli_报告(mysqli_报告错误| mysqli_报告严格)代码>到脚本的顶部。这将强制任何mysqli\uuu
错误生成一个您不能错过或忽略的异常。您的参数不是顺序错误吗?就我所见,它应该是…$datesearch,$TripType…
,而不是…$TripType,$datesearch…
。此外,在查询的这一部分,括号没有关闭好:DATE((LiveTrip.TripDate)>=DATE(?)
如果LiveTrip.TripDate
的类型为DATE
,变量$datesearch
将包含格式为YYYY-MM-DD
的字符串,那么比较应该非常简单:LiveTrip.TripDate>=?
。无需强制转换,只需确保$datesearch
格式正确即可。