Salut,
Pour le htmlentities() il faut aussi que toutes les données de la base soient codées en HTML afin que la comparaison puisse être faite et certaine fois il bloquait sur le "&" donc je n'ai pas pu retenir cette solution.
Je me suis aperçu que MySQL zappait les accents, tu peux essayer de passer chaque paramètre dans cette fonction, qui effectue aussi un addslashes() :
<?
function stripAccents($str){
$str = htmlentities($str, ENT_NOQUOTES, "utf-8");
$str = preg_replace('#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml)\;#', '\1', $str);
$str = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $str); // pour les ligatures e.g. 'œ'
$str = preg_replace('#\&[^;]+\;#', '', $str); // supprime les autres caractères
return addslashes($str);
}
$dbh = new PDO('mysql:host=localhost;dbname='.$database, $username, $password);
$maproc = "CALL ps_chercher(stripAccents($mes), stripAccents($paramètres))";
$appelSP = $dbh->prepare($maproc);
$appelSP->execute();
while($row = $appelSP->fetchAll(PDO::FETCH_ASSOC)) print_r($row);
?>