mysqli_connect()
의 PHP 매뉴얼에서는 반환 값을 확인하고 화면에 오류 메시지를 표시하도록 권장합니다.
마찬가지로 OOP 스타일 생성자의 경우 다음을 권장합니다.
으아악Stack Overflow의 일부 사용자는 다음과 같은 mysqli_error($conn)
코드를 사용하기도 했습니다.
하지만 지난 몇 주 동안 저는 스스로에게 '왜 이 일을 해야 하는가?'라는 질문을 해왔습니다. 첫 번째 예의 출력은 다음과 같습니다.
경고: mysqli_connect(): (HY000/1045): 사용자 액세스가 거부되었습니다. 'my_user'@'localhost' (비밀번호 사용: YES) C:xampp...mysqli.php 라인 4
오류: MySQL에 연결할 수 없습니다. 디버깅 오류 번호: 1045 디버깅 오류: 사용자 "my_user"@"localhost"에 대한 액세스가 거부되었습니다(비밀번호 사용: 네)
보시다시피 오류 메시지가 두 번 표시됩니다! 수동 "디버깅"은 실제로 더 적은 정보를 제공합니다.
연결 오류를 수동으로 확인해야 하나요? 이런 식으로 자동 경고보다 더 많은 정보를 얻을 수 있습니까? 이것이 권장되는 방법입니까?
연결 오류를 수동으로 표시하지 마세요!
MySQLi는 MySQL에 대한 연결을 열 수 없으면 경고를 생성합니다. 이 경고는 오류 코드, 오류 메시지 및 코드에서 오류가 발생한 위치를 포함하여 알아야 할 모든 것을 알려줍니다. 수동으로 오류를 확인해도 더 이상 정보가 제공되지 않습니다.
경고가 표시되지 않고 연결을 만들 수 없다면 PHP가 경고를 표시하도록 구성되지 않았기 때문일 수 있습니다. 이 경우 서버의 오류 로그 파일을 확인해야 합니다. 어디에 있는지 모른다면
phpinfo() code>
获取该信息并搜索error_log
를 사용하세요. 오류 로그 파일의 위치를 알려줍니다.오류 로그에 경고가 없으면 PHP 오류 보고가 침묵(완전히 또는 경고만)되었음을 의미할 수 있습니다. PHP 구성을 확인하세요.
production환경에서는 다음 설정을 유지해야 합니다.
error_reporting
必须为E_ALL
log_errors
必须开启
display_errors
必须关闭
필수닫기
개발
환경에서는 다음 설정을 유지해야 합니다.error_reporting
必须为E_ALL
log_errors
必须开启
display_errors
必须开启
필수활성화
display_errors
를 항상 꺼야 하는 이유입니다. 서버에 오류를 기록하는 것이 안전합니다.
경고 및 예외
!die/exit
경고로 인해 스크립트가 중단되지는 않습니다. 경고가 발생하면 치명적인 오류가 발생할 때까지 스크립트가 계속 실행됩니다. 대부분의 경우 스크립트를 중지하려면 예외를 발생시켜야 합니다. 사용하지 마세요mysqli 연결을 설정할 수 없는 경우 예외가 발생해야 하며, 처리되지 않은 경우 심각한 오류와 함께 스크립트가 중지됩니다. 자동으로 예외를 발생시키도록 mysqli를 구성할 수 있습니다. 모든 mysqli 함수는 다양한 이유로 실패할 수 있고 각 오류를 수동으로 확인하지 않는 한 어떤 문제도 알려주지 않기 때문에 이는 매우 중요합니다. 연결을 열기 전에 다음 줄을 사용하세요: 으아아아 예외 처리 방법을 실제로 알지 못하는 한 예외를 포착하지 마세요! 가능한 사용 사례는
Mysqli를 사용하여 올바르게 연결하는 방법mysqli_error()
에 설명되어 있습니다.연결 관련 문제가 표시될 수 있나요?
아니요. 🎜 유효한 mysqli 연결이어야 합니다. 그렇지 않으면 다음 오류 메시지가 표시됩니다: 🎜mysqli_error($conn)
预计 mysqli 连接成功。$conn
$conn->error
和mysqli_error($conn)
연결 관련 오류는 표시할 수 없습니다!관련: "mysqli_stmt_prepare"를 호출할 때 오류를 수동으로 확인해야 합니까? p>