PHP MySQL プリペアードステートメントのセキュリティについて


以下のようなプリペーアドステートメントを作りました。  
id:int型、name:varcher型、area:int型です。  
areaは1～10までの数値で住んでいる地位を表すとします。  
例えば1=関東、2=関西、3=四国、...

この場合すべての地域のユーザーデータを取得する場合はどのようにすればいいのでしょうか。

例えば

[code]

    if($area==0){
      $db->query("SELECT id, name FROM user");
    }else{
      $ps=$db->prepare("SELECT id, name FROM user WHERE area = :area");
      $ps->bindValue(':area', (int)$area, PDO::PARAM_INT);
      $ps->execute();
    }
    
[/code]

のようにしてもセキュリティ的に問題ないでしょうか？




結論から言うと、記載内容の実装でも別に問題ないと思います。

[code]

    $db->query("SELECT id, name FROM user");
    
[/code]

上記、特にセキュリティ的な問題はないと思います。  
※サンプルということなので細かい話は一旦置きます。

ひとつのSQLでまとめるならOR句を使ってやればできると思います。

