mysqli::real escape string

Från Wiki.linux.se
Version från den 2 september 2024 kl. 16.44 av Admin (diskussion | bidrag) (→‎Se även)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

mysqli::real_escape_string

mysqli_real_escape_string (PHP 5, PHP 7, PHP 8)

mysqli::real_escape_string -- mysqli_real_escape_string — Escaperar specialtecken i en sträng för användning i ett SQL-uttalande, med hänsyn till den aktuella teckenuppsättningen för anslutningen

Beskrivning

Objektorienterad stil

public mysqli::real_escape_string(string $string): string

Procedurell stil

mysqli_real_escape_string(mysqli $mysql, string $string): string

Denna funktion används för att skapa en giltig SQL-sträng som kan användas i ett SQL-uttalande. Den angivna strängen kodas för att producera en escaperad SQL-sträng, med hänsyn till den aktuella teckenuppsättningen för anslutningen.

Varning

Säkerhet: den förvalda teckenuppsättningen Teckenuppsättningen måste ställas in antingen på servernivå eller med API-funktionen mysqli_set_charset() för att påverka mysqli_real_escape_string(). Se konceptavsnittet om teckenuppsättningar för mer information.

Parametrar

mysql
Endast procedurell stil: Ett mysqli-objekt som returneras av mysqli_connect() eller mysqli_init().
string
Strängen som ska escaperas.

Tecken som kodas är NUL (ASCII 0), \n, \r, \, ', ", och CTRL+Z.

Returnerar

Returnerar en escaperad sträng.

Exempel

Exempel #1 mysqli::real_escape_string() exempel

Objektorienterad stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "'s-Hertogenbosch";

/* denna fråga med escaperad $city kommer att fungera */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
    $mysqli->real_escape_string($city));
$result = $mysqli->query($query);
printf("Select returned %d rows.\n", $result->num_rows);

/* denna fråga kommer att misslyckas eftersom vi inte escaperade $city */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = $mysqli->query($query);
?>

Procedurell stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "'s-Hertogenbosch";

/* denna fråga med escaperad $city kommer att fungera */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
    mysqli_real_escape_string($mysqli, $city));
$result = mysqli_query($mysqli, $query);
printf("Select returned %d rows.\n", mysqli_num_rows($result));

/* denna fråga kommer att misslyckas eftersom vi inte escaperade $city */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = mysqli_query($mysqli, $query);
?>

Ovanstående exempel kommer att ge ett resultat som liknar:

Select returned 1 rows.

Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's-Hertogenbosch'' at line 1 in...

Se även

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/mysqli.real-escape-string.php
PHP


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp.se som har sponsrat Linux.se med webserver.