Эти функции - какой-то ужас, летящий на крыльях ночи. mysql_real_escape_string - вообще за гранью добра и зла.
Но главное, что я не могу понять - это какое отношение к my
sql и ms
sql имеет функция
xss_clean. Ну то есть я даже представить себе не могу, как можно функцию для защиты от xss применять для любых манипуляций c SQL. Это - я не знаю - как положить деньги в презерватив от грабителей. Он же служит для безопасности. Ну вот деньги и будут в безопасности.
По теме: ради всего святого, используйте
PDO с
подготовленными выражениями. Это сделает ненужной всю эту мышиную возню с регулярками. PDO поддерживает как mysql, так и mssql, так что разница будет только в синтаксисе запросов, а сам код работы с запросами будет один и тот же
$sql = "SELECT TOP 10 * FROM user where mssql.department_id=?";
$stmt = $conn->prepare($sql);
$stmt->execute([$_GET['department_id']]);
$users = $stmt->fetchAll();
$sql = "SELECT * FROM user where mysql.department_id=? LIMIT 10";
$stmt = $conn->prepare($sql);
$stmt->execute([$_GET['department_id']]);
$users = $stmt->fetchAll();
Как можно заметить,
в запросах нет ни одной кавычки вообще, что делает сам вопрос про замену бессмысленным.
От XSS же надо защищаться совсем в другом месте, и также без всего этого ужаса