sql >> Databasteknik >  >> RDS >> Mysql

hur man undkommer inmatning men sparar oescaped i databasen

Du använder INTE addslashes du använder lämplig DB-specifik escape-funktion som mysql_real_escape_string .

om du använder PDO kommer användningen av en förberedd sats att undvika variablerna som en del av bindningsprocessen. I det här fallet är allt du behöver göra något i stil med:

$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 för extra läsbarhet och snabbare återanvändning kan du använda namngivna params:

$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. Index på primära och främmande nycklar

  2. SQLT och partitionering

  3. Hur jämför man versionssträng (x.y.z) i MySQL?

  4. FEL 2002 (HY000):Kan inte ansluta till den lokala MySQL-servern via uttaget '/var/run/mysqld/mysqld.sock' (2)