>>215
>プリペアードステートメントを使えば、SQLインジェクションの対策としては完璧ですか?
いいえ
プリペアードステートメントとは簡単に言えばSQLを高速に実行するための準備のことなので
sqlインジェクションとは関係ありません
PDO::prepareはこの準備をしつつSQLインジェクション対策を同時に行うメソッドです

>・SQLインジェクションを防ぐ方法はプリペアードステートメントを使うのが良いのはわかりますが、
> htmlspecialcharsを使う方法が代わりにならない理由は何ですか?
xssとsqlインジェクションとではエスケープすべき文字列が異なるからです