Vous devez utiliser bindValue , pas bindParam
bindParam prend une variable par référence et ne tire pas de valeur au moment de l'appel de bindParam . J'ai trouvé ceci dans un commentaire sur la documentation PHP :
bindValue(':param', null, PDO::PARAM_INT);
PS Vous pourriez être tenté de le faire bindValue(':param', null, PDO::PARAM_NULL); mais cela n'a pas fonctionné pour tout le monde (merci Will Shaver pour le signalement.)