Лучше ли всегда проверять возвращаемое значение PDOStatement :: execute?

0

У меня есть класс Permission с методом, аналогичным следующему.

public function AddComponentToAccount($component_id,$account_id)
{       
    $sql = "INSERT INTO component_permissions
            (account_id,component_id)
            VALUES
            (:account_id,:component_id)";

    $q = $this->db->prepare($sql);
    $q->bindValue(':acount_id',$account_id);
    $q->bindValue(':component_name',$component_id);
    $q->execute();
}

Мой вопрос: если окончательная строка действительно будет return $q->execute(); ? Из двух следующих, что лучше? Или это субъективно?

if(!$Permission->AddComponentToAccount($component_id,$account_id)){
    ...
}

-

try {
    $Permission->AddComponentToAccount($component_id,$account_id)
} catch(Exception $e) {
    HandleError($e);
}

Я уже знаю, что переменные, передаваемые в AddComponentToAccount, хороши. Исключения могут быть сложным нарушением ПК или фактом, что БД не работает.

Теги:
pdo

1 ответ

2
Лучший ответ

Это зависит от метода обработки ошибок PDO.

  • Если вы используете PDO::ERRMODE_EXCEPTION, вам нужен блок try... catch
  • Если вы используете PDO::ERRMODE_SILENT или PDO::ERRMODE_WARNING вам нужно всего лишь управлять кодом ошибки,

Теперь, рассматривая, где можно управлять ошибкой, я предпочитаю, чтобы в коде вызывающего абонента затухали исключения, таким образом вы можете управлять своим поведением на основе вызывающего (для чего сделано исключение).

Обращаясь на ваш вопрос, если вы используете PDO::ERRMODE_EXCEPTION вам не нужно управлять как код возврата и само исключение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню