Si recibes el html y lo tratas como texto te lo debe guardar... no uses htmlentities porque precisamente hace lo contrario a lo que pretendes ... convierte los caracteres del lenguaje a entities para que no se traten como parte del código. Lo que si debes usar es
addslashes para evitar conflictos con los delimitadores de texto... El uso de un editor tipo
TyniMCE te puede ayudar.
Una vez consigas que entre en la bbdd revisa si la salida permitirá ese html....