>  Q&A  >  본문

mysqli_connect() 오류를 수동으로 확인해야 합니까?

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"에 대한 액세스가 거부되었습니다(비밀번호 사용: 네)

보시다시피 오류 메시지가 두 번 표시됩니다! 수동 "디버깅"은 실제로 더 적은 정보를 제공합니다.

연결 오류를 수동으로 확인해야 하나요? 이런 식으로 자동 경고보다 더 많은 정보를 얻을 수 있습니까? 이것이 권장되는 방법입니까?

P粉031492081P粉031492081332일 전669

모든 응답(1)나는 대답할 것이다

  • P粉251903163

    P粉2519031632023-10-28 00:52:28

    연결 오류를 수동으로 표시하지 마세요!

    MySQLi는 MySQL에 대한 연결을 열 수 없으면 경고를 생성합니다. 이 경고는 오류 코드, 오류 메시지 및 코드에서 오류가 발생한 위치를 포함하여 알아야 할 모든 것을 알려줍니다. 수동으로 오류를 확인해도 더 이상 정보가 제공되지 않습니다.

    경고가 표시되지 않고 연결을 만들 수 없다면 PHP가 경고를 표시하도록 구성되지 않았기 때문일 수 있습니다. 이 경우 서버의 오류 로그 파일을 확인해야 합니다. 어디에 있는지 모른다면 phpinfo() 获取该信息并搜索 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_error($conn) 预计 mysqli 连接成功。 $conn

    아니요. 🎜 유효한 mysqli 연결이어야 합니다. 그렇지 않으면 다음 오류 메시지가 표시됩니다: 🎜

    $conn->errormysqli_error($conn) 연결 관련 오류는 표시할 수 없습니다!


    관련: "mysqli_stmt_prepare"를 호출할 때 오류를 수동으로 확인해야 합니까?

    회신하다
    0
  • 취소회신하다