Como lidar com erros do MySQL

Você usa as funções mysqli da linguagem PHP, tais como mysqli_connect e mysqli_query, para interagir com o banco de dados MySQL. Às vezes as coisas vão dar errado quando você usa as declarações. Você pode fazer um erro em sua digitação, tais como erros de digitação de um nome de banco de dados. Às vezes, surgem problemas que você não pode evitar, como o banco de dados ou a rede a ser baixo.

Você precisa incluir código em seu script que lida com situações de erro.

Você normalmente quer fazer lidar com seu erro mais descritiva para ajudar com a resolução de problemas durante o desenvolvimento, mas você não quer que a informação extra exibido ao público.

Por exemplo, suponha que você estiver usando uma conta chamada root para acessar seu banco de dados e você faz um erro de digitação, como nas seguintes afirmações:

$ Host = "localhost" - $ user = "rot" - $ password = "" - $ cxn = mysqli_connect ($ host,$do utilizador,$senha)

Porque você digitar "podridão" em vez de "root", você verá uma mensagem de aviso semelhante a esta:

Aviso: Acesso negado para o usuário: 'rot @ localhost' (Using password: NO) ...

A mensagem de erro anterior contém as informações que você precisa para descobrir o problema - ele mostra o nome da conta, que inclui o erro de digitação.

No entanto, depois que o script está sendo executado e os clientes estão a usá-lo, você não quer que seus usuários para ver uma mensagem de erro técnico que mostra sua identificação de usuário. Você quer transformar os erros do PHP fora ou enviá-los para um arquivo de log de erro. Você poderia, então, usar um morrer declaração para parar o script e exibir uma mensagem educada para o usuário, como segue:

$ Cxn = mysqli_connect ($ host,$do utilizador,$password) ou morrer ( ". O catálogo não está disponível no momento Por favor, tente novamente mais tarde.") -

Quando um mysqli_query () função falhar, MySQL retorna uma mensagem de erro que contém informações sobre a causa da falha. No entanto, essa mensagem não será exibida a menos que você exibi-lo especificamente. Novamente, você pode querer ver essas mensagens quando você está desenvolvendo o roteiro, mas você não pode querer exibi-los ao público. Você pode exibir o erro MySQL que é retornado utilizando a seguinte função:

mysqli_error ($ cxn)

Por exemplo, você pode incluir a função em seu código, como segue:

$ Consulta = "SELECT * FROM Cust" - resultado $ = mysqli_query ($ cxn, $ query) ou morrer ( "Erro:" .mysqli_error ($ cxn)) -

Neste exemplo, se a chamada função falhar, o morrer declaração exibe o erro MySQL, que poderia ser algo como isto:

Erro: Table 'catalog.cust' não existe

Ocasionalmente, você pode querer executar ações adicionais se a função falhar, como excluir variáveis ​​ou fechar a conexão banco de dados. Você pode executar essas ações usando uma instrução condicional:

(! $ Result = mysqli_query ($ cxn, $ query)) {echo se mysqli_error ($ cxn) -unset ($ auth) -exit () -}

Se a chamada de função falhar, as declarações no E se bloco serão executados. o eco declaração exibe o erro MySQL retornado pela função. Uma variável é removido, eo script sai.

Observe a ! (Ponto de exclamação) na E se declaração. ! significa "não". Em outras palavras, o E se afirmação é verdadeira se o comando de atribuição não é verdade.

menu