В то время как нет никакого правильного ответа - он зависит от рассматриваемого проекта, я рекомендовал бы подход, защищенный в" Доменный Управляемый Design" Eric Evans. В этом подходе бизнес-логика изолируется в ее собственном слое - доменном слое - который находится сверх уровня (уровней) инфраструктуры - который мог включать Ваш код базы данных, и ниже прикладного уровня, который отправляет запросы на доменный слой для выполнения и прислушивается к подтверждению их завершения, эффективно управляя приложением.
Таким образом, бизнес-логика получена в модели, которая может быть обсуждена с теми, кто понимает бизнес кроме технических вопросов, и это должно облегчить изолировать изменения в самих бизнес-правилах, проблемах технической реализации и потоке приложения, которое взаимодействует с бизнес-(доменной) моделью.
я рекомендую читать вышеупомянутую книгу, если Вы получаете шанс, поскольку довольно хорошо в объяснении, как этот чистый идеал может на самом деле быть приближен в реальном мире реального кода и проектов.
Должно быть
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$id = $row['id'];
$n = $row['n'];
$k = $row['k'];
}
Если вы настаиваете на fetchAll
, тогда
$results = $query->fetchAll(PDO::FETCH_ASSOC);
foreach($results as $row) {
$id = $row['id'];
$n = $row['n'];
$k = $row['k'];
}
PDO :: FETCH_ASSOC
выбирает только имена столбцов и пропускает числовой индекс.