SQLインジェクション対策の為にPDOの処理を勉強しているんですが

if (is_int($value)){
  $pdo->bindValue($param, $value, PDO::PARAM_INT);
}else{
  $pdo->bindValue($param, $value, PDO::PARAM_STR);
}

こういうのよく見るんですが、$valueの値によって型を可変させる処理って、
インジェクション対策としては全く意味がないんじゃないかと疑問に思ってるんです。

数値を意図してる$valueに悪意を持ってインジェクション文字列打ったら、
そのまま文字列として処理されてしまうという事になる思うんですが、実際大丈夫なんでしょうか?