개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.24 17:31

mysqli::escape_string 함수에 대한 질문

목록
  • Perl매니아 1일 전 2025.03.24 17:31
  • 3
    1
저는 MySQLi를 사용하여 데이터베이스와 연결을 Establish 할 때, 데이터를 안전하게 전송하기 위해 mysqli::escape_string 함수를 사용하고 있습니다.

但是, 이 함수의 작동 원리는 잘 이해하지 못하고 있습니다.
mysqli::escape_string 함수는 어떤 목적으로 사용되고, 데이터를 어떻게 처리하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    mysqli::escape_string 함수는 MySQLi 확장 함수 중 하나로, 사용자 입력 데이터를 MySQL 쿼리에 삽입하기 전에 데이터를 안전하게 처리하는 데 사용됩니다.

    이 함수는 MySQLi가 제공하는 데이터베이스 연결을 통해 사용자 입력 데이터를 처리하여 SQL 인젝션 공격을 방지합니다.

    mysqli::escape_string 함수는 사용자 입력 데이터를 다음과 같은 방법으로 처리합니다.

    1. 데이터를 문자열로 변환합니다.
    2. 데이터에 있는 모든 싱글 쿼터를 두 번으로 변환합니다.
    3. 데이터에 있는 모든 백슬래시를 싱글 쿼터로 변환합니다.
    4. 결과 문자열을 반환합니다.

    예를 들어, 사용자가 "John's"이라는 이름을 입력했을 때, mysqli::escape_string 함수는 "John\'s"으로 변환하여 SQL 쿼리에 삽입합니다.

    이러한 처리를 통해 SQL 인젝션 공격을 방지하고 데이터베이스에 안전하게 데이터를 삽입할 수 있습니다.

    mysqli::escape_string 함수는 PHP 5.3.6 버전부터 사용할 수 있습니다. 이전 버전에서는 mysqli_real_escape_string 함수를 사용해야 합니다.

    mysqli::escape_string 함수를 사용하는 예제는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $mysqli = new mysqli("localhost", "username", "password", "database");
    
    
    
    $name = "John's";
    
    $escaped_name = mysqli::escape_string($name);
    
    
    
    $query = "INSERT INTO users (name) VALUES ('$escaped_name')";
    
    
    
    $mysqli->query($query);
    
    
    
    $mysqli->close();
    
    


    이 예제에서는 사용자 입력 데이터인 "John's"을 mysqli::escape_string 함수를 사용하여 안전하게 처리한 후 SQL 쿼리에 삽입합니다.

    2025-03-24 17:32

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 6,544건 / 1 페이지

검색

게시물 검색