Come non detto: avevo il problema quando il testo conteneva sia apici che virgolette.
Credo che la soluzione più semplice sia quella di sostituire le virgolette prima di inserire il testo nel dbase:
codice:$testo = str_replace('"', '"', $testo);