次のような POST データからの整数を検証するために is_numeric を使用していました。
if( ! is_numeric($_POST['integer_string'])) return FALSE // not a integer
次に、値に小数がある場合、 is_numeric が TRUE を返すことを発見しました。
次に、キャストと is_int を試しました。
$int = (int) $_POST['numeric_string'];
if( ! $int) return FALSE // not a integer
ただし、数値以外の値が渡された後、キャストは整数をカットします。
$int = '222i2';
echo $int;
// 222
検証しようとしている整数は、整数の主キーを識別するために SQL の WHERE 句で使用されます。
POST データから整数を検証する確実な方法は何ですか、またはこの問題に個人的にどのように対処しますか?