Con un pò di esperienza sono arrivato a questa funzione da usare su OGNI stringa che contiene caratteri liberi prima di fare la query:
codice:
/* ### FORMATTAZIONE DATI PER DATABASE (RIMOZIONE TAG ED INSERIMENTO ESCAPE) ### */
function formatDbString($fStrFormData) {
$fStrFormData=str_replace("\\'","'",$fStrFormData);
$fStrFormData=str_replace("\\\\","\",$fStrFormData);
$fStrFormData=str_replace("<","<",$fStrFormData);
$fStrFormData=str_replace(">",">",$fStrFormData);
$fStrFormData=str_replace("$","$",$fStrFormData);
$fStrFormData=str_replace("\\\"",""",$fStrFormData);
return $fStrFormData;
}
come puoi vedere a volte prima del carattere da sostituire ci sono uno o più escape questo è dovuto da alcune impostazioni del tuo server web, ti consiglio di provare per trovare l'esatta configurazione che a te serve!