Você precisa usar
bindValue
, não bindParam
bindParam
recebe uma variável por referência e não obtém um valor no momento da chamada de bindParam
. Eu encontrei isso em um comentário nos documentos do PHP:bindValue(':param', null, PDO::PARAM_INT);
P.S. Você pode ficar tentado a fazer isso
bindValue(':param', null, PDO::PARAM_NULL);
mas não funcionou para todos (obrigado Will Shaver por relatar.)