gpt4 book ai didi

php - PDO 动态参数绑定(bind) where 子句 AND 日期之间

转载 作者:行者123 更新时间:2023-11-29 12:44:26 25 4
gpt4 key购买 nike

我有一个带有多个输入字段的搜索表单。其中 2 个输入字段是日期。如果用户填写从/到日期,则应显示从/到该日期的所有记录;如果用户给出 2 个日期,则应显示这 2 个日期之间的所有记录。

这是我其他输入字段的工作代码,但我不知道如何实现日期约束。参数绑定(bind)应该保持动态,因为我们不知道用户将搜索多少个变量。

<?php   $this->databaseConnection();

$sql = 'SELECT * FROM trips t';
$searchTerms = array_filter($_GET);
$whereClause = array();

foreach($searchTerms as $key=>$value)
{
//Push values to array
array_push($whereClause, "t." . $key . "=:" . $key);
}

if(!empty($whereClause))
{
$sql .= " WHERE " . implode(" AND ", $whereClause);
}

if($this->databaseConnection()) {

$query_search_data = $this->db_connection->prepare($sql);
foreach($searchTerms as $key=>$value)
{
$query_search_data->bindValue(':' . $key, $value);
}

$query_search_data->execute();
$result = $query_search_data->fetchAll(); ?>

最佳答案

我找到了解决方案。

取消设置日期变量(例如 unset($searchTerms['fromDate'], $searchTerms['toDate']);)并在查询末尾再次添加它们。

if (isset($_GET['fromDate']) && !empty($_GET['fromDate'])) {
$sql .= " AND Date >=:from_date";
}

希望这可以帮助其他人解决动态参数绑定(bind)问题。

关于php - PDO 动态参数绑定(bind) where 子句 AND 日期之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25644825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com