• 締切済み

PDOの使い方について

PDOの使い方について教えてください。 例えば $st = $pdo->prepare("SELECT * FROM user_table WHERE id=:id"); $st->bindValue(':id',$id, PDO::PARAM_INT); $st->execute(); を $st = $pdo->prepare("SELECT * FROM user_table WHERE id='$id' "); $st->execute(); のように記載してはいけないのでしょうか? セキュリティ上問題があるのでしょうか? よろしくお願い致します。

みんなの回答

  • kreikg
  • ベストアンサー率39% (21/53)
回答No.1

正常に結果を取得できなら問題ないですが下の書き方だと$idの変数の値ではなく、$idという文字列がクエリとして送信されてしまいませんか?

ore_akimoto
質問者

補足

ありがとうございます。 また説明不足ですいません。 $idには事前に変数の代入を「$id = 3;」などと行う予定です。 実際には問題なく導入していますが、 ただ、上記の例のように$st->bindValue(':id',$id, PDO::PARAM_INT);と行っていない場合、pdoはmysql_real_escape_stringが不要と聞きましたが、セキュリティ上問題がないのでしょうか?

関連するQ&A