Leggendo in giro ho scoperto che microsoft durante la creazione della query sql vuole passati due aprici.

Eccome la soluzione:
str_replace("'", "''", $dato);