Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Bereinigung beim Speichern des serialisierten Arrays

Immer Verwenden Sie mysql_real_escape_string beim Umgang mit Zeichenfolgen, die Anführungszeichen / Schrägstriche enthalten können. Wenn Sie dies nicht tun, erhalten Sie fehlerhafte / böswillige Abfragen. Die Ausgabe von serialize() enthält manchmal Anführungszeichen / Schrägstriche, also sollten Sie es verwenden. Es ist jedoch nicht erforderlich, jedes Element des Arrays vorher zu serialisieren.

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

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

Nur als Beispiel:Die Serialisierung von "hello" ergibt: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);