PHP mysqli_real_escape_string() 함수 용법


PHP mysqli_real_escape_string() 함수 용법




최초 작성일 : 2023-05-10 | 수정일 : 2023-05-10 | 조회수 : 480

PHP의 MySQLi 확장에서 사용하는 mysqli_real_escape_string() 함수에 대해 자세히 알아보자. 이 함수는 MySQL 쿼리를 안전하게 만드는 데 중요한 역할을 하므로, PHP와 MySQL을 사용하여 웹 애플리케이션을 개발하는 데 있어 중요한 지식이다.

mysqli_real_escape_string() 함수란?

mysqli_real_escape_string() 함수는 MySQL 쿼리에서 사용될 문자열에서 특수 문자를 안전하게 처리한다.
이 함수는 문자열에서 다음과 같은 특수 문자를 해제한다.

  • • \x00
  • • \n
  • • \r
  • • \
  • • '
  • • '
  • • \x1a

이 함수는 SQL 인젝션 공격을 방지하는 데 도움이 된다.
SQL 인젝션은 공격자가 악의적인 SQL 문을 삽입하여 데이터베이스를 공격하는 방법이다.

사용 방법

mysqli_real_escape_string() 함수를 사용하는 방법은 다음과 같다.

php
mysqli_real_escape_string($connection, $string_to_escape);

여기서 $connection은 데이터베이스 연결을 나타내는 mysqli 객체이며, $string_to_escape는 이스케이프할 문자열이다.

예제

다음은 mysqli_real_escape_string() 함수를 사용하는 간단한 예제이다.

php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
$user_input = 'O'Reilly';
$safe_input = $mysqli->real_escape_string($user_input);
$query = 'INSERT INTO authors (name) VALUES ('$safe_input')';
$mysqli->query($query);

이 예제에서 사용자 입력에 작은따옴표(')가 포함되어 있다.
만약 이 문자열을 그대로 사용하면, SQL 쿼리가 제대로 작동하지 않다.
하지만 mysqli_real_escape_string() 함수를 사용하면 작은따옴표가 이스케이프되어 안전하게 쿼리에 삽입된다.

😀 닉네임
🧨 댓글내용 ( 주의: HTML 태그 및 URL은 저장시 제거됩니다. )