Работая над конкретным приложением, я продолжаю писать очень похожие запросы, снова и снова. Они не совсем одинаковые, но имеют очень похожую форму и встроены в почти идентичные куски кода, , например ,
$Mysqli = new mysqli;
if ($Stmt = $Mysqli->prepare("SELECT foo
FROM tblFoo
WHERE something = ?")) {
$Stmt->bind_param('s', $this->_something);
$Stmt->execute();
if (0 != $Stmt->errno)
throw new Exception("blah, blah, blah");
$Stmt->bind_result($foo);
while ($Stmt->fetch()){
$this->_foos[] = new Foo($foo);
}
$Stmt->close();
} else {
throw new Exception("blah, blah, blah"););
}
}
и позже, где-то еще ...
$Mysqli = new mysqli;
if ($Stmt = $Mysqli->prepare("SELECT bar, baz
FROM tblBar
WHERE somethingElse = ?")) {
$Stmt->bind_param('s', $this->_somethingElse);
$Stmt->execute();
if (0 != $Stmt->errno)
throw new Exception("blah, blah, blah");
$Stmt->bind_result($bar, $baz);
while ($Stmt->fetch()){
// do something else with $bar and $baz
}
$Stmt->close();
} else {
throw new Exception("blah, blah, blah"););
}
}
... а потом еще и еще где-то ... и т.д.
Это настоящее нарушение СУХОГО? Похоже, не имеет смысла писать класс для выполнения запросов такого типа (с параметрами конструктора или параметрами для таблицы, столбца, связанных переменных и т. Д.), А затем повторно использовать его в моем приложении. Но в то же время я не могу избавиться от этого ноющего чувства, которое я повторяю.
Может быть, просто есть так много способов написания простого запроса и что следует ожидать определенного количества повторений, подобных этому.
Мысли