English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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版本5中引入的,并且可以在所有更高版本中使用。
以下示例演示了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
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
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);