PHP Добавление критериев к подготовленному заявлению - PullRequest
1 голос
/ 12 января 2020

Я пытаюсь использовать подготовленное утверждение для поиска в БД, где я не знаю, сколько аргументов мне нужно искать. Поэтому в следующем примере проверяется, что столбец title содержит две переменные

$stmt = $con->prepare("SELECT title FROM news WHERE title LIKE %?% AND title LIKE %?%");

Что делать, если я хочу проверить третью переменную. Могу ли я добавить подготовленное заявление? Мое единственное решение на данный момент заключается в следующем, что ужасно, поскольку я не знаю максимального числа переменных.

$no_of_variables = 3;

if($no_of_variables == 1){
    $stmt = $con->prepare("SELECT title FROM news WHERE title LIKE %?%");
} else if($no_of_variables == 2){
    $stmt = $con->prepare("SELECT title FROM news WHERE title LIKE %?% AND title LIKE %?%");
} else if($no_of_variables == 3){
    //etc
}

Я был бы благодарен за лучший способ использования подготовленных операторов, если это возможно. Спасибо

1 Ответ

1 голос
/ 12 января 2020

Создайте подготовленный оператор, повторив условие $no_of_variables -times:

$where = implode(" AND ", array_fill(0, $no_of_variables, "title LIKE %?%"));
$stmt = $con->prepare("SELECT title FROM news WHERE {$where}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...