sprintf não irá protegê-lo! Ele apenas substitui o
%s
você deve mysql_real_escape_string então:
$sql = sprintf('SELECT * FROM TABLE WHERE COL1 = "%s" AND COL2 = "%s"',
mysql_real_escape_string($col1),
mysql_real_escape_string($col2));
é injeção mais segura
nota:sugiro que você dê uma olhada em PDO , é o que eu gosto de usar para DBconnections e consultas