Es importante ver mensajes de error .. PHP no tiene nada que ver con tu BD .. así que los mensajes de error los controla TU base de datos y sólo PHP te pone a tu disposicón una funcion (o varías) para "ver" esos mensajes de error; me refiero a: mysql_error()
Código PHP:
<?php
$link= mysql_connect("mysql.xxxxx.com", "caracol", "pass") or die (mysql_error());
mysql_select_db("database", $link) or die (mysql_error());
$sql= "INSERT INTO virtuales (vir_denombre, vir_demail, vir_paranombre, vir_paramail, vir_fondo, vir_detalles, vir_cuerpo, vir_texto, vir_opcion, vir_mensaje, vir_fecha) ".
"VALUES ('$denombre', '$demail', '$paranombre', '$paramail', '$fondo', '$detalles', '$cuerpo', '$texto', '$opcion', '$mensaje', '$fecha')";
// Observa que sentencia SQL está quedando ...
// OJO .. toda variable va con comillas simples (o debería .. incluido tu $fecha en la sentenica SQL
echo $sql;
if (mysql_query($sql,$link)){
echo "¡Gracias! Hemos recibido sus datos.\n";
}else{
echo mysql_error();
}
?>
Por otro lado la ejecución de mysql_query() devuelve un "true" si se ejecutó correctamente y un false sino .. así que deberías usarlo en un IF() si es que deseas mostrar ese mensaje de que tus datos se isertaron bien (que por otro lado NOOOOO es recomendable que lo hagas ahí mismo sino que se redireccione a otra página que muestre dicho mensaje de error/exito .. sino, si recargas la página verás como se solicitan enviar denuveo los datos y ocasionarías registros duplicados en tu BD hasta que el usuario de turno se aburra de recargar la página).
Un saludo,