Я пытаюсь создать гибкую опцию поиска, но параметры не работают в массиве execute.Могу ли я получить помощь по этому поводу?
$extra = '';
$params = array();
$sql = "SELECT brand_id,brand_status,brand_name FROM brands ORDER BY brand_name";
$brand_status = "";
$brand_name = "su";
if($brand_status) {
$extra .= "brand_status=:brand_status and ";
$params[] = array(
"brand_status" => $brand_status
);
}
if($brand_name) {
$extra .= "brand_name LIKE :brand_name and ";
$params[] = array(
"brand_name" => "%" . $brand_name . "%"
);
}
if(count($params) > 0) {
if(strlen($extra) > 0) {
$extra = substr($extra, 0, -5);
}
$sql = "SELECT brand_id,brand_status,brand_name FROM brands WHERE $extra ORDER BY brand_name";
$query = $db->prepare($sql);
$result = $query->execute(array(
$params
));
} else {
$result = $query = $db->query($sql);
}
if($result)
$num = $query->rowCount();
if($num > 0) {
while($row = $query->fetch()) {
echo $row['brand_name'] . "<br>";
}
}
Если значение brand_name пустое, код работает хорошо.Могу ли я сделать гибкую опцию поиска с параметрами массива исполнения без использования bindParam или bindValue?