PHP에서 MySQLI Extension은 MySQL 데이터베이스와 상호 작용하는 방법을 제공합니다. MySQLI 클래스의 중요한 기능은 Errno 속성을 통해 마지막 MySQL 작업에서 오류가 발생했을 때 오류 코드를 얻을 수 있어야합니다. 이 기능을 사용하여 개발 단계에서 온 및 오프 SQL 디버깅 모드를 동적으로 판단하여 개발자가 문제를 신속하게 찾을 수 있도록 도와줍니다.
mysqli :: $ errno는 마지막 SQL 쿼리 실행 중에 발생한 오류 코드를 저장하는 MySQLI 클래스의 회원 속성입니다. 쿼리가 성공적으로 실행되면 Errno 의 값은 0이 되고 오류가 발생하면 Errno가 해당 오류 코드를 반환합니다. 예를 들어:
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
$query = "SELECT * FROM non_existing_table"; // 오류 쿼리
$result = $mysqli->query($query);
if ($mysqli->errno) {
echo "MySQL 오류 코드: " . $mysqli->errno;
}
위의 예에서 쿼리 테이블이 존재하지 않으므로 $ mysqli-> errno는 해당 오류 코드를 반환합니다.
SQL 디버깅 모드는 일반적으로 개발 중에 활성화되며 상세한 오류 정보 및 SQL 쿼리 로그를 출력하는 데 사용됩니다. 오류 코드에 따라 SQL 디버깅 모드가 활성화되어 있는지 확인할 수 있습니다. 일반적으로 디버그 모드는 오류가 발생하면 더 많은 오류 메시지를 출력하며 오류가 없으면 일반적으로 출력이 없습니다.
mysqli :: $ errno 가 0인지 판단함으로써, 우리는 그것이 현재 디버그 모드에 있는지 여부를 결정할 수 있습니다.
오류 코드는 0입니다 . SQL 쿼리가 성공적이거나 SQL 디버깅 모드가 활성화되지 않았거나 현재 오류가 없습니다.
오류 코드는 비 0 : SQL 쿼리가 실패하고 SQL 디버깅 모드가 활성화되었을 수 있습니다.
데이터베이스 작업을 수행하고 MySQLI :: $ errno를 통해 SQL 디버깅 모드의 상태를 판단하고 싶다고 가정합니다.
<?php
// 데이터베이스 연결
$mysqli = new mysqli("localhost", "username", "password", "database");
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
// 디버그 모드를 활성화합니다
ini_set('display_errors', 1); // 표시 오류
error_reporting(E_ALL); // 모든 오류를 표시하십시오
// 执行一个有意오류 쿼리
$query = "SELECT * FROM non_existing_table";
$result = $mysqli->query($query);
// 오류를 확인하십시오
if ($mysqli->errno) {
echo "MySQL 오류 코드: " . $mysqli->errno . "\n";
echo "오류 메시지: " . $mysqli->error . "\n";
} else {
echo "쿼리 성공,오류가 발생하지 않았습니다。\n";
}
// 关闭데이터베이스 연결
$mysqli->close();
?>
위의 코드에서는 mysqli :: $ errno 의 오류가 있는지 확인하고 자세한 오류 정보가 출력됩니다. SQL 디버그 모드가 활성화되면 오류 메시지가 표시됩니다. 디버그 모드가 활성화되지 않은 경우 오류 코드와 간단한 오류 메시지 만 출력됩니다.
PHP에서 ini_set ( 'display_errors', 1) 및 Error_Reporting (e_all) 을 설정하여 오류 디스플레이를 활성화 할 수 있으며 디버깅 중에 매우 유용합니다. SQL 디버깅 모드가 켜지면 모든 SQL 오류 메시지가 직접 표시되어 개발자가 문제를 신속하게 해결할 수 있도록 도와줍니다. 디버그 모드를 끄려면 ini_set ( 'display_errors', 0)을 설정하여 오류 디스플레이를 끄십시오.
ini_set('display_errors', 0); // 오류 표시를 끄십시오
error_reporting(0); // 모든 오류 보고서를 닫습니다
실제 개발에서 URL은 코드에 관련 될 수 있습니다. 데이터베이스 쿼리의 URL 부분이 관련된 경우 M66.net을 도메인 이름으로 사용하도록 수정하는 것이 좋습니다. 예를 들어: