mysql_real_escape_string — Escapes special characters in a string for use in a SQL statement
Omschrijving:
string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
Escapes speciale tekens in de unescaped_string, rekening houdend met de huidige tekenset van de verbinding, zodat het veilig is om deze te plaatsen in een mysql_query (). Als binaire gegevens dienen te worden geplaatst, deze functie gebruikt te worden.
mysql_real_escape_string () oproepen MySQL’s library functie mysql_real_escape_string, die prepends backslashes om de volgende tekens: \ x00, \ n \ r \ ‘,’ en \ x1a.
Deze functie moet altijd (met enkele uitzonderingen) worden gebruikt om de gegevens veilig zijn voor het versturen van een query op MySQL.
Parameters
unescaped_string
The string that is to be escaped.
link_identifier
De MySQL-verbinding. Als de link identifier niet opgeeft, wordt de laatste schakel geopend door mysql_connect () wordt verondersteld. Indien een dergelijke link wordt aangetroffen, zal proberen er een te maken, alsof mysql_connect () werd aangeroepen zonder argumenten. Als bij toeval geen verband is gevonden of is gevestigd, een E_WARNING niveau fout wordt gegenereerd.
Return Values
Returns the escaped string, or FALSE on error.
Examples
Example #1 Simple mysql_real_escape_string() example
// Connect
$link = mysql_connect(’mysql_host’, ‘mysql_user’, ‘mysql_password’)
OR die(mysql_error());
// Query
$query = sprintf(”SELECT * FROM users WHERE user=’%s’ AND password=’%s’”,
mysql_real_escape_string($user),
mysql_real_escape_string($password));
Example #2 An example SQL Injection Attack
// Query database to check if there are any matching users
$query = “SELECT * FROM users WHERE user=’{$_POST[’username’]}’ AND password=’{$_POST[’password’]}’”;
mysql_query($query);// We didn’t check $_POST[’password’], it could be anything the user wanted! For example:
$_POST[’username’] = ‘aidan’;
$_POST[’password’] = “‘ OR ‘’='”;// This means the query sent to MySQL would be:
echo $query;
