Pues yo creo que deverías de reemplazar esos carácteres problematicos por unos no tan comunes. Lo que yo hago es reemplazar (,) por (|) y (;) por (^) en Excel por decir algo y antes de guardarlos en la base de datos utilizo la función str_replace pasandole los array's de esta forma:
$encuentra = array ( ',', ';');
$remplaza = array ( '|', '^' );
$campo = str_replace ( $encuentra, $remplaza, $campo );
Como vez es muy sencillo y hay que tener en cuenta el orden y el número de elementos de los array's ya que (,) es reemplazada por (|) y así sucesivamente. Espero haberme dado a entender y mi aporte te sirva por lo menos para darte una idea.Suerte