Всем привет! Пытаюсь овладеть классами и вот задался вопросом... есть такой вот простенький класс:
class Ports
{
private $db;
public function __construct($db)
{
$this->db = $db;
}
private function AddPort($port) // записываем название порта в базу
{
$port = $this->db->real_escape_string($port);
$res = $this->db->query("INSERT INTO `ports` (`name`) VALUES('{$port}')");
return $this->db->insert_id;
}
public function Port($port) // Проверяем существование порта
{
$port = $this->db->real_escape_string(trim($port));
$res = $this->db->query("SELECT `id` FROM `ports` WHERE `name` = '{$port}' LIMIT 1");
if($res->num_rows == 1){
$row = $res->fetch_assoc();
return $row['id'];
}else{
$port_id = $this->AddPort($port);
return $port_id;
}
}
}
Из вне, я вызываю метод
Port которому передаю в параметрах название порта (морской порт к примеру). Метод проверяет наличие такого названия в базе и возвращает его id в случае удачи. Если такого порта не существует, вызываем метод
AddPort и передаем ему название порта, там порт добавляется в базу и метод
AddPort возвращает id добавленной записи. И тут вопрос: "Как должна работать логика, если вдруг, по каким-то причинам
AddPort не вернет id добавленной записи? Это простой пример, но ведь цепочка может быть большая, то как вывести ошибку пользователю где именно код сработал не верно?"
Другими словами, нужно вставить проверку сюда:
if($this->db->query("INSERT INTO `ports` (`name`) VALUES('{$port}')")){
//continue
}else{
"Не удалось добавить запись"; // не понятно, куда добавить эту информацию, чтобы она аккуратно вывелась пользователю и приостановила весь скрипт.
}