(er vanuitgaande dat je MySQL gebruikt)
Gebruik een _real_escape_string() functie om de DATA-delen binnen je SQL te ontdoen van enige speciale betekenis binnen die SQL (zoals quotes).
Ingeval je mysql gebruikt is dit mysql_real_escape_string($data).
Ingeval je mysqli gebruikt is dit mysqli_real_escape_string($dbLink, $data) (procedureel) of $dbLink->real_escape_string($data) (object georiënteerd)
EDIT: voor het correct functioneren van (i.h.a.) escaping is het van cruciaal belang dat je werkt met de juiste (en bij voorkeur één) character encoding. Als je tabellen de UTF-8 encodering gebruiken is het zaak dat je bij het maken van een verbinding de juiste character encoding kiest. Dit doe je met een _set_charset() functie.
Als er al data in je database zit, dan is dit mogelijk gedaan met een verkeerde aanname over de te gebruiken character encoding. Mogelijk kan deze toevoeging (van _set_charset()) ertoe leiden dat data verkeerd wordt weergegeven, maar als hier sprake van is dan wil dit zeggen dat de data eigenlijk al verkeerd in je database zat...