Supponi di avere questa query:
$user = $_POST['user'];
$sql = "SELECT pwd FROM users WHERE user='$user'";
Ma un utente scrive:
'; DELETE FROM users WHERE 1 OR '
Il valore di $sql diventerà:
SELECT pwd FROM users WHERE user=''; DELETE FROM users WHERE 1 OR ''
La prima query non trova niente.
La seconda ha una where che è sempre vera (grazie a 1) e quindi cancella tutte le righe di users.
Si chiama SQL injection: nella tua SELECT è stata "iniettata" una pericolosissima DELETE!
Ma se sostituisci ' con '' diventa:
SELECT pwd FROM users WHERE user='''; DELETE FROM users WHERE 1 OR '''
che non trova niente ma è innocua.