PHP 개발에서 데이터베이스 작업에 MySQLI를 사용할 때 MySQLI_STMT :: $ 오류는 SQL 실행에서 오류 정보를 얻는 데 사용됩니다. 그러나 PHPUnit 테스트에서 잘못된 출력은 종종 개발자 디버그를 직관적으로 돕지 못합니다. 따라서이 기사에서는 MySQLI_STMT :: $ 오류 오류 정보를 PHPUnit 테스트에 통합하여 코드를 더 잘 디버그하고 확인하는 방법을 설명합니다.
단위 테스트를 작성할 때 오류 메시지는 매우 중요한 디버깅 정보를 제공 할 수 있습니다. 일반적으로 SQL 문이 실행될 때 오류가 발생하면 오류가 발생하면 MySQLI_STMT :: $ 오류가 오류 메시지를 반환합니다. 이 오류 메시지를 PHPUnit 테스트에 통합하지 않으면 테스트가 실패 할 때, 특히 많은 데이터베이스 상호 작용이있을 때 오류의 특정 원인을 찾기가 어려울 것입니다.
MySQLI_STMT :: $ 오류 오류 메시지를 PHPUnit 테스트 출력에 통합하여 개발자는 다음을 수행 할 수 있습니다.
특정 SQL 오류 메시지를보기가 더 쉽습니다.
테스트가 실패하면 더 자세한 오류 프롬프트를 얻으십시오.
테스트 프로세스를 개선하고 테스트의 효과를 향상시킵니다.
MySQLI_STMT :: $ 오류 오류 메시지를 PHPUNIT 테스트에 통합하려면 다음이 구체적인 구현 단계입니다.
먼저 데이터베이스 연결을 만들고 데이터베이스 작업을 위해 MySQLI_STMT 객체를 준비해야합니다. MySQLI 확장 기능을 사용하여 데이터베이스 연결을 설정하고 SQL 쿼리를 수행합니다.
<?php
// 데이터베이스 연결 구성
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// 연결을 만듭니다
$conn = new mysqli($servername, $username, $password, $dbname);
// 연결을 확인하십시오
if ($conn->connect_error) {
die("연결이 실패했습니다: " . $conn->connect_error);
}
// 준비하다 SQL 성명
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $userId);
그런 다음 PHPUnit 테스트 클래스를 작성합니다. 테스트 방법에서는 SQL 쿼리를 실행하고 mysqli_stmt :: $ error 를 통해 오류 메시지를받습니다. 오류가 발생하면 오류 메시지를 PHPUnit 테스트 결과로 출력하십시오.
<?php
use PHPUnit\Framework\TestCase;
class DatabaseTest extends TestCase
{
public function testDatabaseQuery()
{
global $conn;
// 구현하다 SQL 질문
$userId = 1;
$stmt->execute();
// 检查구현하다是否成功
if ($stmt->error) {
// 오류 메시지를 기록하십시오 PHPUnit 테스트 출력
$this->fail("SQL 실수: " . $stmt->error);
} else {
$result = $stmt->get_result();
$this->assertNotEmpty($result);
}
}
}
위의 코드에서 SQL 쿼리가 실행되지 않으면 $ stmt-> error가 오류 메시지를 반환하고 실패 () 메소드를 통해 phpunit 테스트의 실패 정보로 출력합니다. 이러한 방식으로 테스트가 실패하면 테스트 실패의 프롬프트뿐만 아니라 특정 SQL 오류 메시지도 볼 수 있습니다.
오류 정보를 더 풍부하게하기 위해 오류 로깅을 확장 할 수 있습니다. 예를 들어, 오류 정보를 로그 파일에 저장하거나 지정된 URL로 오류 보고서를 보냅니다 ( gitbox.net 도메인 이름으로 바꾸십시오).
<?php
// 실수日志记录
if ($stmt->error) {
error_log("数据库질문失败: " . $stmt->error, 3, "/var/log/php_errors.log");
// 可以将실수信息发送到远程服务器
file_get_contents("https://gitbox.net/log.php?error=" . urlencode($stmt->error));
}
이러한 방식으로 PHPUnit 테스트에서 오류 정보를 출력 할뿐만 아니라 오류 정보를 로그 파일 또는 원격 서버에 저장하여 더 쉽게 분석 및 처리를 할 수 있습니다.
MySQLI_STMT :: $ 오류 오류 출력을 PHPUnit 테스트에 통합하면 테스트가 실패하면 더 자세한 오류 정보를 얻어 디버깅 효율성을 향상시킬 수 있습니다. 이 접근법은 기존의 SQL 쿼리뿐만 아니라 다른 데이터베이스 작업에도 적합합니다. 로깅 및 원격보고를 통해 향후 분석을위한 오류 정보를 보관할 수도 있습니다.