Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

mysqli_real_escape_string

MySQLi Funktionen

    Befehl:
string mysqli_real_escape_string ( mysqli $link , string $escapestr )

string mysqli::real_escape_string ( string $escapestr )
( oder )

string mysqli::escape_string ( string $escapestr )


    Parameter-Liste:
NameBeschreibung
linkNur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.
escapestrDie Zeichenfolge, die maskiert werden.
Zeichen codiert werden, sind NUL (ASCII 0), \n, \r, \, ', ", und Control-Z.

    Rückgabewerte:
Liefert ein Zeichenkette zurück.

    Beschreibung:
Diese Funktion wird verwendet, um eine Rechts SQL-Zeichenfolge, die Sie in einer SQL-Anweisung verwenden können. Die angegebene Zeichenfolge ist auf einem entflohenen SQL-Zeichenfolge codiert werden, unter Berücksichtigung der aktuellen Zeichensatz der Verbindung.


    Aktiv in Version:
(PHP 5, PHP 7)

    Hinweis:
Hinweis:

Für diejenigen, die sich erst daran gewöhnen mysql_real_escape_string() zu beachten, dass die Argumente der mysqli_real_escape_string() unterscheiden von dem, was mysql_real_escape_string() erwartet. Die Link-Kennung kommt zuerst in mysqli_real_escape_string(), während der Zeichenkette escaped werden kommt zuerst in mysql_real_escape_string().


    Achtung:
Achtung:

Der Zeichensatz muss entweder auf Serverebene oder mit der API-Funktion mysqli_set_charset() für sie zu beeinflussen mysqli_real_escape_string() gesetzt werden. Siehe Abschnitt Konzepte auf Zeichensätze für weitere Informationen.


    Siehe auch:
Setzt den Standard-Client-Zeichensatz
 
Gibt den Standardzeichensatz für die Datenbank-Verbindung
 

mysqli_real_escape_string() - Beispiel: Objektorientierter Stil

(mysqli::real_escape_string)
(mysqli::escape_string)


Eingabe:
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", $mysqli->sqlstate);
}

$city = $mysqli->real_escape_string($city);

/* this query with escaped $city will work */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>


Ausgabe:
Error: 42000
1 Row inserted.
mysqli_real_escape_string() - Beispiel 2: Prozeduraler Stil

(mysqli::real_escape_string)
(mysqli::escape_string)


Eingabe:
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", mysqli_sqlstate($link));
}

$city = mysqli_real_escape_string($link, $city);

/* this query with escaped $city will work */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", mysqli_affected_rows($link));
}

mysqli_close($link);
?>


Ausgabe:
Error: 42000
1 Row inserted.


MySQLi Funktionen