sql >> Database >  >> RDS >> Mysql

Opschonen bij het opslaan van geserialiseerde array

Altijd gebruik mysql_real_escape_string bij het omgaan met tekenreeksen die aanhalingstekens / schuine strepen kunnen hebben. Als je dat niet doet, krijg je kapotte/kwaadaardige zoekopdrachten. De uitvoer van serialize() heeft soms aanhalingstekens / schuine strepen, dus je moet het gebruiken. Het is echter niet nodig om elk item van de array vooraf te serialiseren.

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

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

Om een ​​voorbeeld te geven:het serialiseren van "hello" geeft je: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. BITAND() Functie in Oracle

  2. gegevens van de ene tabel naar de andere verplaatsen, postgresql-editie

  3. Lange tijd om gegevens van OracleDB op te halen met Eclipselink

  4. Een bestandsgroep toevoegen aan een SQL Server-database (T-SQL)