PHP에서 데이터베이스 디버깅 도구를 사용하면 개발자가 연결 상태, 쿼리 실행 상태, 문자 세트 및 데이터베이스의 기타 정보를 쉽게보고 관리 할 수 있습니다. 이 기사는 예제를 사용하여 공통 데이터베이스 디버깅 도구를 작성하는 방법을 보여주고 mysqli :: get_charset을 사용하여 현재 연결된 문자 세트 정보를 표시합니다.
먼저 데이터베이스를 작동하려면 데이터베이스 연결 객체가 필요합니다. MySQLI 확장자를 사용하는 경우 다음 코드와 연결할 수 있습니다.
<?php
// 데이터베이스 연결 구성
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// 연결을 만듭니다
$conn = new mysqli($servername, $username, $password, $dbname);
// 연결을 확인하십시오
if ($conn->connect_error) {
die("연결이 실패했습니다: " . $conn->connect_error);
}
?>
여기서 MySQL 데이터베이스 test_db 에 연결되는 연결 객체 $ conn을 만듭니다. 연결이 실패하면 오류 메시지가 출력되고 스크립트가 종료됩니다.
다음으로 간단한 쿼리, 연결 정보보기, 문자 세트보기 등 일반 데이터베이스 디버깅 도구 클래스를 작성합니다.
<?php
class DbDebugger {
private $conn;
public function __construct($connection) {
$this->conn = $connection;
}
// 쿼리를 실행하고 결과를 반환하십시오
public function executeQuery($sql) {
$result = $this->conn->query($sql);
if ($result === false) {
return "쿼리 오류: " . $this->conn->error;
}
$rows = [];
while ($row = $result->fetch_assoc()) {
$rows[] = $row;
}
return $rows;
}
// 현재 연결의 문자 세트 정보를 가져옵니다
public function getCharsetInfo() {
return $this->conn->get_charset();
}
// 현재 연결 정보를 얻으십시오
public function getConnectionInfo() {
return [
'host' => $this->conn->host_info,
'client_version' => $this->conn->client_version,
'server_version' => $this->conn->server_version,
];
}
}
?>
DBDEBUGGER 클래스는 MySQLI 연결 객체를 생성자의 매개 변수로 받아들입니다.
ExecuteQuery 메소드는 SQL 쿼리를 실행하고 쿼리 결과를 반환합니다. 쿼리가 실패하면 오류 메시지가 반환됩니다.
getCharsetInfo 메소드는 mysqli :: get_charset을 통해 현재 연결의 문자 세트 정보를 얻습니다.
getConnectionInfo 메소드는 호스트 정보, 클라이언트 버전 및 서버 버전과 같은 데이터베이스 연결에 대한 몇 가지 기본 정보를 반환합니다.
이제 공통 데이터베이스 디버깅 도구 클래스를 만들었습니다. 다음 으로이 도구 클래스를 사용하여 데이터베이스 정보를 쿼리하고 문자 세트를보기 방법을 보여줍니다.
<?php
// 디버깅 도구 클래스가 포함되어 있습니다
include 'DbDebugger.php';
// 데이터베이스 연결을 만듭니다
$conn = new mysqli($servername, $username, $password, $dbname);
// 인스턴스화 된 데이터베이스 디버깅 도구
$dbDebugger = new DbDebugger($conn);
// 쿼리를 실행하고 결과를 출력하십시오
$sql = "SELECT * FROM users";
$queryResult = $dbDebugger->executeQuery($sql);
echo "<pre>";
print_r($queryResult);
echo "</pre>";
// 현재 연결된 문자 세트 정보를 출력하십시오
echo "현재 연결 문자 세트: " . $dbDebugger->getCharsetInfo()['charset'] . "<br>";
// 출력 연결 정보
$connectionInfo = $dbDebugger->getConnectionInfo();
echo "호스트 정보: " . $connectionInfo['host'] . "<br>";
echo "클라이언트 버전: " . $connectionInfo['client_version'] . "<br>";
echo "서버 버전: " . $connectionInfo['server_version'] . "<br>";
?>
먼저 DBDEBUGGER 클래스를 인스턴스화하고 데이터베이스 연결 객체 $ CONN을 통과합니다.
ExecuteQuery 메소드는 SQL 쿼리를 실행하고 결과를 출력하도록 호출됩니다.
GetCharsetInfo를 사용하여 현재 연결된 문자 세트 정보를 얻고 표시하십시오.
GetConnectionInfo를 사용하여 연결 호스트 정보, 클라이언트 버전 및 서버 버전을 출력하십시오.
mysqli :: get_charset은 현재 연결의 문자 세트 정보를 포함하는 연관 배열을 반환합니다.
Array
(
[charset] => utf8mb4
[collation] => utf8mb4_general_ci
)
UTF-8, UTF-8MB4 등과 같은 Charset 키를 통해 설정된 현재 문자의 정보를 얻을 수 있습니다. 문자 세트는 데이터베이스의 저장 및 읽기에 매우 중요하므로 응용 프로그램이 문자 데이터를 올바르게 처리 할 수 있습니다.
이 기사는 PHP를 사용하여 일반적인 데이터베이스 디버깅 도구를 작성하는 방법을 보여줍니다. mysqli :: get_charset 메소드를 통해 현재 데이터베이스 연결의 문자 세트 정보를 쉽게 얻을 수 있습니다. 또한이 도구의 도움으로 데이터베이스를 쿼리하고 연결 정보를 얻을 수도 있습니다.이 도구는 개발 중 데이터베이스 연결, 쿼리 실행 및 기타 작업을 디버깅하는 데 매우 도움이됩니다.
관련 태그:
mysqli