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

hvordan man undslipper input, men gemmer uescaped i databasen

Du BRUGER IKKE addslashes du bruger den passende DB-specifikke escape-funktion såsom mysql_real_escape_string .

hvis du bruger PDO, vil brug af en forberedt erklæring undslippe variablerne som en del af bindingsprocessen. I dette tilfælde skal du bare gøre noget som:

$pdo = new PDO($dsn, $user, $name);
$stmt = $pdo->prepare('INSERT INTO your_table (col1, col2,col3) VALUES (?, ?, ?)');
$stmt->execute(array('value 1', 'value 2', 'value 3');

ELLER for ekstra læsbarhed og lettere genbrug kan du bruge navngivne parametre:

$pdo = new PDO($dsn, $user, $name);
$stmt = $pdo->prepare('INSERT INTO your_table (col1, col2,col3) VALUES (:col1, :col2, :col3)');
$stmt->execute(array(':col1' =>'value 1', ':col2' =>'value 2', ':col3' =>'value 3');


  1. Simpel SQL Join Forståelse?

  2. MySQL:FEJL 1227 (42000):Adgang nægtet - Kan ikke OPRET BRUGER

  3. Sådan nærmer du dig dilemmaet:eksportordrer fra det gamle magento-system importeres til nyt magento, overlappende id'er

  4. Eksporter tabel fra database til csv-fil