sprintf cię nie ochroni! Zastępuje tylko %s
musisz mysql_real_escape_string więc:
$sql = sprintf('SELECT * FROM TABLE WHERE COL1 = "%s" AND COL2 = "%s"',
mysql_real_escape_string($col1),
mysql_real_escape_string($col2));
jest bezpieczniejszy zastrzyk
uwaga:proponuję spojrzeć na PDO , to właśnie lubię używać do połączeń DB i zapytań