sprintf ne vous protégera pas ! Il remplace uniquement le %s
vous devez mysql_real_escape_string donc :
$sql = sprintf('SELECT * FROM TABLE WHERE COL1 = "%s" AND COL2 = "%s"',
mysql_real_escape_string($col1),
mysql_real_escape_string($col2));
est une injection plus sûre
note :je vous suggère de jeter un œil à PDO , c'est ce que j'aime utiliser pour les connexions DB et les requêtes