Я преобразование всех мои запросов от MySQL к PDO, и в этом процессе я нашел условный запрос подобно следующегоУсловный запрос с PDO подготовить и связать заявление
if (isset($parameters['searchTerm'])) {
$where =" And title LIKE '%{$parameters['searchTerm'] }%'";
}
$sql = "Select * from table data Where tableId = 5 {$where} ";
и когда я пытаюсь преобразовать этот запрос в PDO ожидаемый синтаксис выглядит следующим образом
if (isset($parameters['searchTerm'])) {
$where =" And title LIKE :searchTerm";
}
$sql = $dbh->prepare("Select * from table data Where tableId = 5 {$where}");
if (isset($parameters['searchTerm'])) {
$sql ->bindParam(':searchTerm', '%{$parameters['searchTerm'] }%');
}
$sql ->execute();
Теперь, как вы можете видеть, что если условие if (isset ($parameters ['searchTerm'])) {...}
повторяется дважды.
Причина в том,
- Я не могу подготовить запрос SQL, прежде чем $, где в настоящее время установлены таким образом, SQL переменных $ инициализируются после первого, если оператор
- я не могу связать параметры, пока я не подготовить SQL поэтому он должен быть размещен после подготовки $ sql.
Таким образом, существует один оператор if до $sql = $dbh->prepare("Select * from table data Where tableId = 5 {$where}");
и один оператор if после.
И мой вопрос: Есть ли способ удалить это избыточное утверждение if, или я должен сделать это только так.
в отношении синтаксиса php Я, должно быть, испортил что-то во время редактирования запросов, поэтому не беспокойтесь об этом. – Arpita