Método PHP correcto para almacenar caracteres especiales en MySQL DB

Usando PHP, cuál es la mejor manera de almacenar caracteres especiales (como el siguiente) en una base de datos MSQUL, para evitar inyecciones.

<code>« " ' é à ù
</code>

Así es como lo hago ahora:

<code>$book_text=$_POST['book_text'];
$book_text=htmlentities($book_text, "ENT_QUOTES");
$query=//DB query to insert the text
</code>

Entonces:

<code>$query=//DB query to select the text
$fetch=//The fetch of $book_text
$book_text=html_entity_decode($book_text);
</code>

De esta manera, todo mi texto está formateado en entidades HTML. Pero creo que esto ocupa mucho espacio en la base de datos. Entonces, ¿hay una mejor manera?

Respuestas a la pregunta(4)

Su respuesta a la pregunta