En snabb fråga kring mysql_real_escape_string():
När man har kört det på indata till MySQL, måste man köra stripslashes() (eller liknande) när man vill läsa det från databasen igen?
mysql_real_escape_string()
2 svar · 367 visningar · startad av Mr. N.
Kör man addslashes() en gång (antingen manuellt eller automatiskt) så strippar mysql bort tillagda backslash. Skulle tro att samma sak sker med mysql_real_escape_string().
Hittade denna notering i manualen:
Not: If magic_quotes_gpc is enabled, first apply stripslashes() to the data. Using this function on data which has already been escaped will escape the data twice.
Det smidigaste för att undvika dubbla slashes är att använda sig av följande funktion (finns med i php-manualen under just mysql_real_escape_string):
<?php
// Quote variable to make safe
function quote_smart($value)
{
// Stripslashes
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
// Quote if not integer
if (!is_numeric($value)) {
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
}