l'utente scrive normalmente,
tu prima di inserirlo nel database devi formattarlo in modo che non dia errore.
ti posto un esempio :
Codice PHP:
<?php
$stringa 
"l'alchimia";
echo 
"questa stringa da errore: " $stringa "
\n"
;
$formatta_stringa = array("'" => "''");
$nuova_stringa strtr($stringa$formatta_stringa);
echo 
"questa invece no: " $nuova_stringa "
\n"
;
?>
naturalmente potresti formattare in questo modo tutto il testo che viene inserito, ma sarebbe più giusto, fare un controllo sul contenuto del testo, e formattare solo il testo che contenga l'apice.