Как избежать повторения кода с помощью подготовленных операторов PHP SQL? ⇐ Php
-
Гость
Как избежать повторения кода с помощью подготовленных операторов PHP SQL?
В большинстве примеров подготовленных операторов SQL PHP, которые я вижу, например:
$sql = 'INSERT INTO задач(имя_задачи, дата_начала, дата_завершения) VALUES(:имя_задачи, :дата_начала, :дата_завершения)'; $stmt = $this->pdo->prepare($sql); $stmt->выполнить([ ':имя_задачи' => $имя_задачи, ':start_date' => $startDate, ':completed_date' => $completedDate, ]); названия полей почти повторяются... 4 раза!
[*]один раз после INSERT INTO(...): task_name (имя столбца в SQL) [*]один раз после VALUES(...): :task_name [*]один раз в словаре ключ: :task_name [*]однократное значение в словаре: $taskName (локальная переменная)
Я понимаю, что каждое из них имеет разное значение, но все равно эта избыточность очень раздражает: если мы хотим что-то изменить в запросе, нам придется изменить это 4 раза!
Как лучше подготовить оператор, избежав такой избыточности в PHP?
В большинстве примеров подготовленных операторов SQL PHP, которые я вижу, например:
$sql = 'INSERT INTO задач(имя_задачи, дата_начала, дата_завершения) VALUES(:имя_задачи, :дата_начала, :дата_завершения)'; $stmt = $this->pdo->prepare($sql); $stmt->выполнить([ ':имя_задачи' => $имя_задачи, ':start_date' => $startDate, ':completed_date' => $completedDate, ]); названия полей почти повторяются... 4 раза!
[*]один раз после INSERT INTO(...): task_name (имя столбца в SQL) [*]один раз после VALUES(...): :task_name [*]один раз в словаре ключ: :task_name [*]однократное значение в словаре: $taskName (локальная переменная)
Я понимаю, что каждое из них имеет разное значение, но все равно эта избыточность очень раздражает: если мы хотим что-то изменить в запросе, нам придется изменить это 4 раза!
Как лучше подготовить оператор, избежав такой избыточности в PHP?
Мобильная версия