현재 위치: > 최신 기사 목록> MySQLI_STMT :: $ 오류를 사용하여 PSR 로그 표준과 연결하십시오

MySQLI_STMT :: $ 오류를 사용하여 PSR 로그 표준과 연결하십시오

gitbox 2025-05-28

현대의 PHP 개발에서 오류 추적 및 로깅은 응용 프로그램 안정성 및 성능을 향상시키는 중요한 링크입니다. 특히 데이터베이스와 상호 작용할 때 SQL 오류를 정확하게 로깅하고 추적하는 것이 디버깅 및 유지 보수에 중요합니다. 이 기사에서는보다 효율적인 오류 추적 및 로깅을 위해 PSR 로깅 표준과 함께 MySQLI_STMT :: $ 오류 기능을 사용하는 방법을 설명합니다.

1. mysqli_stmt :: $ 오류 함수는 무엇입니까?

mysqli_stmt :: $ error는 현재 SQL 문의 오류를 얻기 위해 PHP의 MySQLI 확장자가 제공하는 메소드입니다. SQL 쿼리를 실행하면 오류가 발생하면이 속성을 사용하여 데이터베이스에서 오류 정보를 반환 할 수 있습니다.

예를 들어 준비된 명령문을 실행할 때 오류가 발생한다고 가정 해 봅시다.

 $mysqli = new mysqli("localhost", "user", "password", "database");
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $userId);

if (!$stmt->execute()) {
    echo "Error: " . $stmt->error;
}

이 예에서 SQL 쿼리에서 오류가 발생하면 $ stmt-> 오류가 오류 메시지를 반환하여 개발자가 문제를 신속하게 찾는 데 도움이됩니다.

2. PSR 로그 표준의 개요

PSR (PHP 표준 권장 사항) 로깅 표준은 PHP 생태계에서 로깅을 통합하기 위해 사용되는 인터페이스 표준입니다. PSR-3은 PHP 로깅의 표준입니다. 로깅 인터페이스를 정의하므로 다른 로그 라이브러리 (예 : 독백, Log4PHP 등) 가이 인터페이스를 구현하여 통합 로깅 메소드가 코드에 사용되도록합니다.

PSR-3 로그 인터페이스의 간단한 사용은 다음과 같습니다.

 use Psr\Log\LoggerInterface;

class MyApp
{
    private $logger;

    public function __construct(LoggerInterface $logger)
    {
        $this->logger = $logger;
    }

    public function someMethod()
    {
        // 벌채 반출
        $this->logger->error('Something went wrong!');
    }
}

PSR-3은 Debug () , info () , inder (), warn (), error (), ritical ()enverenment () 같은 로그 레벨 메소드를 제공하여 개발자가 문제의 심각성에 따라 다양한 유형의 로그 정보를 기록 할 수 있도록 도와줍니다.

3. MySQLI_STMT :: $ 오류를 PSR 로깅 표준과 결합합니다

이제 PSR 로그 표준과 함께 MySQLI_STMT :: $ 오류를 사용하는 방법을 보여줍니다. 데이터베이스 작업이 실패 할 때보다 효율적으로 오류 메시지로 오류 메시지를 작성합니다.

3.1 로그 라이브러리를 설치하십시오

먼저 PSR-3 표준을 지원하는 로그 라이브러리를 설치해야합니다. 여기서 우리는 독백을 예로 들어갑니다.

 composer require monolog/monolog

3.2 로거 구성

다음으로 Monolog Logger를 구성하고 PSR-3 인터페이스와 통합합니다.

 use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$logger = new Logger('my_logger');
$logger->pushHandler(new StreamHandler('path/to/your.log', Logger::ERROR));

3.3 MySQLI_STMT :: $ 오류 및 로거 결합

이제 데이터베이스와 상호 작용하는 함수가 있다고 가정하면 MySQLI_STMT :: $ 오류 에서 로그에 오류 메시지를 기록 할 수 있습니다.

 function fetchData($mysqli, $userId, Logger $logger)
{
    $stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
    if (!$stmt) {
        $logger->error("SQL prepare failed: " . $mysqli->error);
        return false;
    }

    $stmt->bind_param("i", $userId);
    
    if (!$stmt->execute()) {
        $logger->error("SQL execution failed: " . $stmt->error);
        return false;
    }

    $result = $stmt->get_result();
    return $result->fetch_all(MYSQLI_ASSOC);
}

이 예에서는 데이터베이스 작업이 실패하면 오류 메시지가 지정된 로그 파일에 로그인되며 자세한 오류 설명이 포함됩니다. 이를 통해 개발자는 SQL 오류를 쉽게 추적하고 문제를 해결할 수 있습니다.

3.4 사용자 정의 로그 정보

PSR-3 표준을 사용하면 로그에 컨텍스트 정보를 기록하여 오류를 더 잘 분석 할 수 있습니다. 예를 들어, 로그의 컨텍스트 매개 변수로 진단하는 데 도움이되는 사용자의 ID 또는 기타 문제 정보를 사용할 수 있습니다.

 $logger->error('SQL execution failed', [
    'error' => $stmt->error,
    'user_id' => $userId,
    'query' => $stmt->sqlstate,
]);

이렇게하면 사용자 ID 및 SQL 오류 코드를 포함한 더 풍부한 오류 정보가 기록되어 문제를보다 정확하게 찾을 수 있습니다.

4. 결론

PSR 로그 표준과 함께 MySQLI_STMT :: $ 오류 함수를 사용하면 데이터베이스 작업에서 오류를 효율적으로 로그 로그와 로그의 일관성과 사용 편의성을 보장 할 수 있습니다. 개발 환경이든 생산 환경이든, 오류 로그는 문제를 신속하게 찾아서 해결하는 데 중요한 도구입니다. PSR 로깅 표준이 제공하는 유연성 및 호환성을 통해 특정 구현 세부 사항에 대해 걱정하지 않고 표준 호환 로그 라이브러리를 사용할 수 있습니다.

이러한 기술 스택을 통해보다 효율적인 오류 추적 및 녹음을 달성하여 응용 프로그램 안정성 및 개발 효율성을 향상시킬 수 있습니다.