1) Un textarea de HTML no tiene "value" .. su valor predefinido se define en:
Código PHP:
echo " <td><textarea name=\"texto\" rows=\"4\" cols=\"40\">".$row["texto"]."</textarea></td>";
2) Usa los arrays superglobales preferentemente por tu seguridad (de las primeras FAQ's hablan del tema).
Y por mientras revisa si obtienes los valores esperados de tus variables antes de atacar tu mysql_query() .. Puedes usar:
Código PHP:
echo $sqlquery;
para comprobar si tu sentencia SQL está tomando los valores esperados ..
El tema de la seguridad usando la función msyql_escape_string() lo puedes ver en
www.php.net/mysql_escape_string .. Pero en su base se usa para evitar "SQL injection" .. es decir .. que no te "monten" sentencias SQL peligrosas en tu sentencia SQL que formas para ejecutarla y así poder realizar acciones como borrado de registros, pasar validaciones .. etc que puedas hacer.
Un saludo,