Por que precisamos especificar o tipo de parâmetro em bindParam ()?

Eu sou um pouco confuso sobre a razão pela qual precisamos especificar o tipo de dados que passamos na função bindParam () no PDO em Php. Por exemplo, esta consulta:

$calories = 150; 
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT); 
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();

Existe um risco de segurança se eu não especificar o terceiro parâmetro. Quero dizer, se eu apenas fizer no bindParam ():

$sth->bindParam(1, $calories); 
$sth->bindParam(2, $colour);

questionAnswers(3)

yourAnswerToTheQuestion