PHPにSQLインジェクション対策をしたいのですが、

"SELECT * FROM hogehoge WHERE id = '$id' AND number = '$data'

というSQL文を組み立てる場所で、idには引数として整数が入るので文字列リテラルで対策出来ますが、dataには
>>整数
という引数を渡すので、文字列リテラルでは対策出来ないという状況に陥っています。
どうすればいいですか?

追記

$dbh->query("SET NAMES 'hogehoge'");
$sql = "SELECT * FROM replys WHERE id = ? AND data = ?";
$sth = $dbh->prepare($sql,array('integer'),array('string'));
$sth->execute(array($id),array($data));

というコードですが、$dataに>>整数を引数として渡すと、弾かれます。