Нет, XSS не зависит от базы данных. Чтобы избежать SQL-инъекций, вы хотите избежать использования чего-то вроде mysql_real_escape_string или использовать подготовленные операторы, но чтобы избежать XSS, вам нужно избегать при выводе в HTML.
И там есть пара ошибок. Взгляните на OWASP XSS профилактическая шпаргалка . Это объясняет, как убежать для другого контекста.
htmlspecialchars / htmlentities защитит вас, если вы выводите ненадежные данные между тегами, но не защитит вас, если вы выводите их, например, в обработчике событий javascript:
<button onclick="confirm('do you want to delete <?php echo htmlspecialhars($untrusted_data) ?>')">
Это потому, что вы используете HTML, а не javascript.