пробую аписать вспомогательный класс для работы с БД. Пытаюсь писать по архитектуре MVC и мучаюсь таким вопросом - правильно ли в моделе убивать скрипт? К примеру функцию select класса можно написать так:
public function select($query){
$result = mysqli_query($this->link, $query);
if (!$result){
exit(mysqli_error($this->link));
} else if (!mysqli_num_rows($result)) {
$answer = false;
} else {
while ($row = mysqli_fetch_assoc($result)){
$answer[] = $row;
}
}
return $answer;
}
Но при этом в модели приходится использовать функцию exit(), на некоторых форумах мне попадалось такое мнение, что убивать скрипт в модели это плохо - такие полномочия стоит давать только контроллеру. Хотя какой смысл в дальнейшей работе скрипта если произошел сбой в работе с БД?
Можно написать функцию так:
public function select($query){
$result = mysqli_query($this->link, $query);
$answer = [];
if (!$result){
$answer[0] = false;
$answer[1] = mysqli_error($this->link);
} else if (!mysqli_num_rows($result)) {
$answer[0] = false;
$answer[1] = 'Данные не найдены';
} else {
$answer[0] = true;
while ($row = mysqli_fetch_assoc($result)){
$answer[1][] = $row;
}
}
return $answer;
}
Но тогда увеличивается вложенность массива и разбор ответа в контроллере уже куда более громоздкий и некрасивый. Кто поопытнее, подскажите пожалуйста - как правильно в таких случаях писать модели в MVC?