2013-08-11 2 views
1

내 웹 사이트를 개발하는 동안 mysql_error()을 사용하여 오류를 표시하므로 오류를 수정하는 방법을 알고 있습니다.PHP에서 MySQL 오류 처리

내 질문은 ... 웹 사이트가 게시 될 때 사용자가 오류를 보지 않고 대신에 사용자에게 친숙한 메시지를 보길 원하므로 "오류가 발생했습니다".

+0

을 확인하십시오. –

답변

2

일반적으로 라이브 환경에서 이러한 오류를 기록하려고합니다. 즉, 오류 메시지와 시간, IP 등의 정보를 파일에 기록하십시오. 사용자 측에서 사용자에게 몇 가지 의견을 제공해야합니다 , 좋은 오류 메시지를 출력하여 사용자가 무언가 잘못되었다는 것을 알게하십시오.

Google을 사용하여 일부 로거 라이브러리를 찾으십시오. 대부분 라이브 및 개발 환경에서 동작을 변경하도록 구성 할 수 있습니다! 귀하의 웹 사이트를 개발하는 동안 당신이 mysql_* 함수를 사용하지 말아야 때문에 그들이 사용되지 않기 때문에 당신은, mysql_error() 사용하지 않아야합니다, http://www.php-fig.org/psr/3/

0

: 또한 살펴있을 수 있습니다.

가장 기본적인 오류 처리 방법은 Exception입니다. 예외 처리기는 stack trace과 함께 오류 메시지를 기록하고 오류 페이지를 출력해야합니다.

0

this tutorial을 살펴보세요. 내가 검색 한 내용이 있다고 생각합니다.

1

먼저, 더 이상 사용되지 않는 mysql_ 기능을 MySQLi 또는 클래스 중 하나로 옮기는 것이 좋습니다. 둘 다 훨씬 더 안전하며 현재와 미래의 PHP 버전에서 유지 관리됩니다.

될 수있는 오류를 표시하는 몇 가지 가능한 솔루션 :

$sql = new mysqli($host, $user, $password, $database); 
$query = //your query 

//Option 1 
$result = $sql->query($query) or die("Something has gone wrong! ".$sql->errorno); 
//If the query fails, kill the script and print out a user friendly error as well 
//as an error number for them to quote to admins if the error continues to occur, 
//helpful for debugging for you, and easier for users to understand 

//Option 2 
$result = $sql->query($query); 
if($result) { 
    //if the query ran ok, do stuff 
} else { 
    echo "Something has gone wrong! ".$sql->errorno; 
    //if it didn't, echo the error message 
} 

또한 관리자가 볼 수 있도록 전체 $sql->error 세부 사항을 포함 할 수있는 오류 로그에 새로운 오류를 넣어 PHP error_log 기능을 사용할 수 있습니다, $sql->errorno 인쇄물을 완전히 건너 뜁니다. 오류 로깅에 대한 자세한 내용은 mysql error-> your handling script를 참조하십시오. PHP Docs