Вы НЕ используете addslashes
вы используете соответствующую функцию экранирования БД, такую как mysql_real_escape_string
.
если вы используете PDO, то использование подготовленного оператора будет экранировать переменные как часть процесса привязки. В этом случае все, что вам нужно сделать, это что-то вроде:
$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');
ИЛИ для дополнительной читаемости и повторного использования esier вы можете использовать именованные параметры:
$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');