Трябва да използвате bindValue , а не bindParam
bindParam приема променлива чрез препратка и не извлича стойност в момента на извикване на bindParam . Намерих това в коментар в PHP документите:
bindValue(':param', null, PDO::PARAM_INT);
P.S. Може да се изкушите да направите това bindValue(':param', null, PDO::PARAM_NULL); но не работи за всички (благодаря на Уил Шейвър за докладването.)