English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP mysqli_real_escape_string() 함수 사용 방법 및 예제

PHP MySQLi 참조 설명서

mysqli_real_escape_string() 함수는 현재 연결의 문자집합에 따라 SQL 문장의 특수 문자를 escaping합니다.

정의 및 사용 방법

mysqli_real_escape_string()특수 문자를 escaping하여 이 문자열이 유효한 SQL 문장이 되도록 하는 함수입니다. 전달된 문자열은 현재 연결의 문자집합에 따라 escaping되어编码된 유효한 SQL 문장을 얻습니다.

문법

mysqli_real_escape_string($con, $str)

파라미터

순번파라미터 및 설명
1

con(필수)

MySQL 서버와의 연결을 나타내는 객체입니다.

2

str(필수)

특수 문자를 escaping할 필요가 있는 문자열을 포함하는 문자열입니다.

반환 값

mysqli_real_escape_string()SQL 쿼리에서 사용할 수 있는 유효한 문자열로 반환됩니다. 즉, escaping된 문자열입니다.

에러/예외

 잘못된 연결에서 이 함수를 호출하면 NULL을 반환하고 E_WARNING 수준의 오류를 발생시킵니다.

PHP 버전

이 함수는 원래 PHP 버전5중에서 도입되었으며 모든 높은 버전에서 사용할 수 있습니다.

온라인 예제

다음 예제에서는mysqli_real_escape_string()함수 사용 방법(과정 방식)-

//연결 설정
$con = mysqli_connect("localhost", "root", "password", "mydb");
//테이블 생성
mysqli_query($con, "CREATE TABLE my_team(Name VARCHAR(255), Country VARCHAR(255);
$player = "S'Dhawan";
$country = "India";
//데이터 삽입
$res = mysqli_query($con, "INSERT into my_team VALUES ('$player', '$country')");
if (!$res){
   print("에러가 발생했습니다");
}else{
   print("데이터 삽입 성공");
}
print("\n");
$player = mysqli_real_escape_string($con, $player);
$country = mysqli_real_escape_string($con, $country);
//데이터 삽입
$res = mysqli_query($con, "INSERT into my_team VALUES ('$player', '$country')");
if (!$res){
   print("에러가 발생했습니다");
}else{
   print("데이터 삽입 성공");
}
//연결 종료
mysqli_close($con);
?>

결과 출력

에러가 발생했습니다
데이터 삽입 성공

온라인 예제

오브젝트 지향 스타일에서 이 함수의 문법은$con->real_escape_string();。아래는 오브젝트 지향 스타일의 함수 예제입니다;

<?php
   //데이터베이스에 연결됨
   $con = new mysqli("localhost", "root", "password", "test");
   //테이블 생성
   $con->query("CREATE TABLE my_team(Name VARCHAR(255), Country VARCHAR(255);
   $player = "S'Dhawan";
   $country = "India";
   //데이터 삽입
   $res = $con->query("INSERT into my_team VALUES ('$player')");
   if (!$res){
       print("에러가 발생했습니다");
   }else{
       print("데이터 삽입 성공");
   }
   print("\n");
   $player = $con->real_escape_string($player);
   //데이터 삽입
   $res = $con->query("INSERT into my_team (Name) VALUES ('$player')");
   if (!$res){
       print("에러가 발생했습니다");
   }else{
       print("데이터 삽입 성공");
   }
   //연결 종료
   mysqli_close($con);
?>

결과 출력

에러가 발생했습니다
데이터 삽입 성공

온라인 예제

특수 문자 슬래시를 포함한 문자열을 escaping 하세요:

<?php
   $con = mysqli_connect("localhost","root","password","mydb");
   
   if (mysqli_connect_errno($con)){
      echo "MySQL 연결 실패: " . mysqli_connect_error();
   }
   $myName = "Jr's";
   $myName = mysqli_real_escape_string($con,$myName);
   
   mysqli_query($con,"INSERT into emp (name) VALUES ('$myName')");
   mysqli_close($con);

PHP MySQLi 참조 설명서