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

PHP 基础教程

PHP 高级教程

PHP & MySQL

PHP 参考手册

PHP mysqli_real_escape_string() 函数用法及示例

PHP MySQLi Referenzhandbuch

mysqli_real_escape_string()函数根据当前连接的字符集,对于SQL语句中的特殊字符进行转义。

定义和用法

mysqli_real_escape_string()函数用来对字符串中的特殊字符进行转义,以使得这个字符串是一个合法的 SQL 语句。传入的字符串会根据当前连接的字符集进行转义,得到一个编码后的合法的 SQL 语句。

语法

mysqli_real_escape_string($con, $str)

参数

序号参数及说明
1

con(必需)

这是一个表示与MySQL Server的连接的对象。

2

str(必需)

这是一个字符串,您需要在其中转义特殊字符。

返回值

mysqli_real_escape_string()返回可与SQL查询中使用一个合法的字符串,也就是转义后的字符串。

错误/异常

 在无效的连接上调用此函数会返回 NULL 并发出一个 E_WARNING 级别的错误。

PHP版本

此函数最初是在PHP版本5中引入的,并且可以在所有更高版本中使用。

Online-Beispiel

以下示例演示了mysqli_real_escape_string()函数的用法(面向过程风格)-

//建立连接
$con = mysqli_connect("localhost", "root", "password", "mydb");
//Tabelle erstellen
mysqli_query($con, "CREATE TABLE my_team(Name VARCHAR(255), Country VARCHAR(255);
$player = "S'Dhawan";
$country = "India";
//Einen Eintrag einfügen
$res = mysqli_query($con, "INSERT INTO my_team VALUES ('$player', '$country')");
if (!$res) {
   print("Fehler aufgetreten");
} else {
   print("Erfolgreiches Einfügen eines Eintrags");
}
print("\n");
$player = mysqli_real_escape_string($con, $player);
$country = mysqli_real_escape_string($con, $country);
//Einen Eintrag einfügen
$res = mysqli_query($con, "INSERT INTO my_team VALUES ('$player', '$country')");
if (!$res) {
   print("Fehler aufgetreten");
} else {
   print("Erfolgreiches Einfügen eines Eintrags");
}
//Verbindung schließen
mysqli_close($con);
?>

Ergebnis ausgeben

Fehler aufgetreten
Erfolgreiches Einfügen eines Eintrags

Online-Beispiel

In der objektorientierten Syntax ist die Syntax dieser Funktion$con->real_escape_string();.Hier sind Beispiele für Funktionen im objektorientierten Stil;

<?php
   //Datenbank verbunden
   $con = new mysqli("localhost", "root", "password", "test");
   //Tabelle erstellen
   $con->query("CREATE TABLE my_team(Name VARCHAR(255), Country VARCHAR(255);
   $player = "S'Dhawan";
   $country = "India";
   //Einen Eintrag einfügen
   $res = $con->query("INSERT INTO my_team VALUES ('$player')");
   if (!$res) {
       print("Fehler aufgetreten");
   } else {
       print("Erfolgreiches Einfügen eines Eintrags");
   }
   print("\n");
   $player = $con->real_escape_string($player);
   //Einen Eintrag einfügen
   $res = $con->query("INSERT INTO my_team (Name) VALUES ('$player')");
   if (!$res) {
       print("Fehler aufgetreten");
   } else {
       print("Erfolgreiches Einfügen eines Eintrags");
   }
   //Verbindung schließen
   mysqli_close($con);
?>

Ergebnis ausgeben

Fehler aufgetreten
Erfolgreiches Einfügen eines Eintrags

Online-Beispiel

Specialzeichen wie einfache Anführungszeichen in Zeichensätzen escapieren:

<?php
   $con = mysqli_connect("localhost","root","password","mydb");
   
   if (mysqli_connect_errno($con)){
      echo "MySQL-Verbindung fehlgeschlagen: " . 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 Referenzhandbuch