我需要根据搜索条件在程序中生成动态查询。我通常使用以下方法。我需要添加一个between子句
$firstname = 'AAA';
$lastname = 'BBB';
$fromdate = '2015-01-01';
$todate = '2015-01-31';
$query = 'SELECT * FROM users';
$cond = array();
$params = array();
if (!empty($firstname)) {
$cond[] = "firstname = ?";
$params[] = $firstname;
}
if (!empty($lastname)) {
$cond[] = "lastname = ?";
$params[] = $lastname;
}
if (!empty($fromdate) && !empty($todate)) {
// Here I need to add a between $fromdate AND $todate
}
if (count($cond)) {
$query .= ' WHERE ' . implode(' AND ', $cond);
}
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
是否有一种方法来添加between子句到这个代码?
在执行前添加子句。
if (count($cond)) {
$query .= ' WHERE ' . implode(' AND ', $cond);
}
if (!empty($fromdate) && !empty($todate)) {
$query .= ' col_field BETWEEN ? AND ?';
$params[]= $fromdate;
$params[]= $todate;
}
$stmt = $pdo->prepare($sql);
$stmt->execute($params);