PHP에서 데이터베이스 작업에 MySQLI를 사용하는 경우 오류 메시지를 인쇄 해야하는 상황이 종종 발생합니다. 일반적으로 MySQLI 확장자는 오류가 발생할 때 문제를 피드백하는 데 도움이되도록 오류 코드 ( MySQLI :: $ errno ) 및 오류 정보 ( MySQLI :: $ 오류 )를 제공합니다. 그러나 오류 로그를 명확하고 디버깅하기가 더 쉽게 만들기 위해 이러한 오류 메시지를 어떻게 우아하게 인쇄합니까? 이 기사에서는 MySQLI :: $ errno를 우아하게 사용하여 PHP에서 오류 코드 및 오류 메시지를 인쇄하는 방법을 보여줍니다.
먼저 데이터베이스 연결에 MySQLI를 사용하는 방법 및 PHP에서 기본 오류 처리 방법을 살펴 보겠습니다. MySQLI Connection 객체에서 MySQLI :: $ ERROR 및 MySQLI :: $ errno 속성을 통해 오류 메시지 및 오류 코드를 얻을 수 있습니다.
<?php
$host = 'localhost';
$username = 'root';
$password = 'password';
$database = 'test_db';
// 만들다 MySQLi 연결하다
$conn = new mysqli($host, $username, $password, $database);
// 检查연결하다是否成功
if ($conn->connect_error) {
echo "연결하다失败: " . $conn->connect_error;
exit();
}
// 쿼리를 실행하십시오
$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);
// 쿼리가 성공했는지 확인하십시오
if (!$result) {
// 오류 코드 및 오류 메시지를 인쇄합니다
echo "오류 코드: " . $conn->errno . "<br>";
echo "오류 메시지: " . $conn->error;
}
// 关闭연결하다
$conn->close();
?>
Connect_error를 사용하여 데이터베이스 연결이 성공했는지 확인하십시오.
Errno 및 Error를 사용하여 오류 코드 및 오류 정보를 얻으십시오.
쿼리를 실행할 때 오류가 발생하면 Errno 및 오류를 통해 세부 사항이 출력됩니다.
제작 환경에서 오류 메시지를 직접 출력하는 것이 효과적이지만 일반적으로 오류 로그를 기록하고 최종 사용자에게 민감한 정보를 노출하지 않기를 원합니다. 실제 개발에서 우아한 오류 처리는 개발자가 문제를 신속하게 찾는 데 도움이 될뿐만 아니라 시스템 보안 및 사용자 경험을 향상시키는 데 도움이 될 수 있습니다.
error_log () 함수를 사용하여 로그 파일에 오류 정보를 쓸 수 있습니다. 개선 된 코드는 다음과 같습니다.
<?php
$host = 'localhost';
$username = 'root';
$password = 'password';
$database = 'test_db';
$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error) {
// 사용 error_log 记录연결하다错误
error_log("연결하다失败: " . $conn->connect_error, 3, "/var/log/php_errors.log");
exit();
}
$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);
if (!$result) {
// 로그 오류 로그
error_log("오류 코드: " . $conn->errno . " 오류 메시지: " . $conn->error, 3, "/var/log/php_errors.log");
// 输出友好的오류 메시지
echo "작동 실패,나중에 다시 시도하십시오。";
}
$conn->close();
?>
Error_Log ()를 사용하여 지정된 로그 파일 (예 : /var/log/php_errors.log )에 오류 정보를 작성하십시오.
너무 많은 기술적 인 세부 정보를 노출하지 않도록 프론트 엔드에 사용자 친화적 인 오류 메시지를 표시하십시오.
3- 매개 변수 설정을 통해 파일에 오류를 쓰십시오.
생산 환경에서는 일반적으로 PHP 오류 표시를 비활성화하여 로그에 로그인합니다. 민감한 오류 정보가 최종 사용자에게 노출되는 것을 방지하려면 php.ini를 수정하거나 다음 코드를 사용하여 오류 출력을 비활성화 할 수 있습니다.
<?php
// 오류 표시를 비활성화합니다
ini_set('display_errors', '0');
// 오류 로깅을 활성화합니다
ini_set('log_errors', '1');
ini_set('error_log', '/var/log/php_errors.log');
// 연결하다数据库并쿼리를 실행하십시오
$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error) {
// 记录연결하다错误
error_log("연결하다失败: " . $conn->connect_error, 3, "/var/log/php_errors.log");
exit();
}
$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);
if (!$result) {
// 记录오류 메시지
error_log("오류 코드: " . $conn->errno . " 오류 메시지: " . $conn->error, 3, "/var/log/php_errors.log");
echo "작동 실패,나중에 다시 시도하십시오。";
}
$conn->close();
?>
ini_set ( 'display_errors', '0') : 오류 표시를 비활성화합니다.
ini_set ( 'log_errors', '1') : 오류 로깅을 활성화합니다.
오류 메시지는 error_log () 함수를 통해 지정된 파일에 기록됩니다.
오류 처리를보다 유연하게 만들려면 mysqli :: $ errno 및 mysqli :: $ 오류가 균일하게 처리되는 사용자 정의 오류 처리 기능을 정의 할 수 있습니다. 이는 중복 코드를 줄이고 코드의 유지 관리 가능성을 향상시킵니다.
<?php
// 사용자 정의 오류 처리 기능
function handleMysqliError($conn) {
// 로그 오류 로그를 기록합니다
error_log("오류 코드: " . $conn->errno . " 오류 메시지: " . $conn->error, 3, "/var/log/php_errors.log");
// 显示友好的오류 메시지
echo "작동 실패,나중에 다시 시도하십시오。";
}
// 만들다数据库연결하다
$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error) {
handleMysqliError($conn);
exit();
}
$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);
if (!$result) {
handleMysqliError($conn);
}
$conn->close();
?>
Handlemysqlierror 함수는 오류 처리의 논리를 캡슐화합니다.
오류가 발생하면 함수를 호출하면 코드를 직접 단순화 할뿐만 아니라 통합 오류 처리 방법을 보장합니다.
PHP에서는 mysqli :: $ errno 및 mysqli :: $ 오류를 사용하여 오류 메시지를 인쇄하는 것이 매우 일반적입니다. 오류 처리를보다 우아하고 안전하게 만들기 위해 로깅, 오류 출력 비활성화, 사용자 정의 오류 처리 기능 등을 사용하여 시스템의 견고성 및 사용자 경험을 향상시킬 수 있습니다.
이 기사가 PHP에서 데이터베이스 작업의 오류를 처리하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 두십시오.