il problema non sono i caratteri speciali in generale, è propio l'apostrofo, perchè è lo stesso carattere che usi per racchiudere i valori della query.

per risolvere puoi 'ripulire' le variabili prima di passarle alla query:

$comments=str_replace("'","\'",$comments);