Se puede utilizar el MAXLENGTH para evitar que se ingresen mas caracteres de los que se desea.
De todos modos si se ingresaria mas caracteres del que esta definido en la BD para dicho campo, pues el unico problema es que no se almacenan todos los caracteres, asi que creo que es innecesario que verifiques si se ingreso o no 2000 caracteres, solo restringilo en el textarea.
Yo lo utilizo asi en mi pagina:
Código PHP:
<tr>
<td><div align="right">
<p><font color="#000066" size="3" face="Berlin Sans FB">Observaciones:</font></p>
</div></td>
<td colspan="-4">
<textarea name="obslab" cols="65" maxlength="100"></textarea></td>
</tr>
y el textarea que se llama OBSLAB lo guardo directamente en la BD. Sin tocar nada. El problema es el momento de mostrar el contenido, que ahi recien utilizamos el
nl2br.
No se si te sirva, pero como dijo JAVISTA en otro post:
Pues la verdad es que si que ha guardado los saltos en linea y se imprimen en el html, pero ud como visualiza un salto de linea en un documento html? pues no ve nada, el navegador no interpreta el salto de linea como un salto de linea obligado en la interpretación del documento, lo que tiene que hacer es reemplazar el salto de linea ASCII con el salto de linea html, o sea, el <br> o si prefiere el <p>, el codigo es este: Código PHP:
str_replace(Chr(13).Chr(10), "<br>", $text);
Como se habrá dado cuenta, el Chr(13).Chr(10), son los dos carácteres del salto de línea, que SI se guardan en el mysql.
Haciendo ese reemplazo aseguras SI o SI que estas guardando los saltos de linea, y luego para mostrarlos solo usas el
nl2br.