English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 버전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);