Podrías poner un ejemplo del "INSERT" que haces a tu BD con los datos de tu "textarea"?
Usas en la configuración de PHP (php.ini o ver en phpinfo() ): magic_quote_gpc = ON ?
Te lo comento por qué .. en principio si se añaden slash (/) (como hace por defecto magi_quote_gpc a ON) y se usa '$dato' (entre comillas) a la hora de hacer tu INSERT de tu variable .. en tu BD va a quedar integro tu código "PHP" o lo que escribas en el.
Posteriormente .. a la hora de presentar tus datos en "HTML" es donde tienes que aplicar: htmlentities() al dato que obtienes de tu BD para dejarlo "inofensivo" en HTML donde .. dicha función (si leistes el manual) veras que sustitue el caracter < por su &código y así con otros tantos caracteres similares.
Código PHP:
echo htmlentities($row['dato']);
Pero .. es recomendable que el htmlentities() sólo lo apliques cuando "presentes" ese dato en HTLM .. Pues, si esos datos en alguna ocasión los envias a otro "cliente" (no un navegador -> HTML) no tiene sentido la función htmlentites (por qué veras esos códigos de control de HTML que.. por ejemplo para generar un archivo de texto plano no aplican).
Un saludo,