PHP e MySQL – Como gerir as excepções de base de dados?

Imaginemos que tenho várias querys a bases de dados…devo verificar se cada query correu bem? E se sim, como devo mostrar os erros?

Categoria:

0

Sim, devemos verificar se as querys despoletaram erros de base de dados.

E para isso, o ideal é utilizar os mecanismos built-in do PHP. Como por exemplo:

if (!$mysqli = new mysqli('localhost', 'root', '')) {
  throw new Exception( $mysqli->connect_errno.$mysqli->connect_error);
}

if (!$mysqli->query('CREATE DATABASE bd')) {
  thrown new Exception( $mysqli->error );
}

Assim, ficamos com uma forma conveniente de report de excepções, que pode ser controlada numa configuração local. Assim, localmente, poderemos configurar para ver os erros no browser, e em produção num log.

Ou seja, localmente, poderemos ter:

error_reporting(E_ALL);
ini_set('display_errors',1);

E no servidor, ao invés de as mostrar mandamo-las para os logs:

error_reporting(E_ALL);
ini_set('display_errors',0);
ini_set('log_errors',1)

Claro que depois é conveniente encapsulares o mysqli_query() numa classe, que se encarregue de o chamar e tratar eventuais erros, e tu tenhas apenas que o chamar da seguinte forma:

$db->query('CREATE DATABASE bd');
Obrigado pela sua visita!
Não quer subscrever a nossa newsletter? É grátis!
PowerUser - Receba no seu e-mail dicas de tecnologia, tutoriais e análises.
Não mostrar mais