sql >> Database teknologi >  >> RDS >> Mysql

Rengøring ved opbevaring af serialiseret array

Altid brug mysql_real_escape_string når man har at gøre med strenge, der kan have anførselstegn/skråstreger. Hvis du ikke gør det, får du ødelagte/ondsindede forespørgsler. Outputtet af serialize() har nogle gange anførselstegn / skråstreger, så du bør bruge det. Der er dog ingen grund til at serialisere hvert element i arrayet på forhånd.

$details['name']  = $_POST['name'];
$details['email'] = $_POST['email'];
$details['phone'] = $_POST['phone'];

$serializedDetails = mysql_real_escape_string(serialize($details));

Bare som et eksempel:serialisering af "hello" vil give dig:s:5:"hello" .

$data  = 's:5:"hello"';
$query = 'INSERT INTO tbl (data) VALUES ("' . $data . '")';

// leads to a syntax error from mysql
// (plus it's a huge security hole)
mysql_query($query);



  1. Enhver, der bruger SQL-kildekontrol fra Red Gate

  2. PHP og MySQL:Antal returnerede rækker

  3. Hvad er størrelsen på kolonnen af ​​int(11) i mysql i bytes?

  4. PL/pgSQL anonym kodeblok