• 締切済み

php mysql で WHERE句内に変数を入れる方法を教えてください。

php初心者です。 お世話にになります。 id  content 1  テキスト1 2  テキスト2 3  テキスト3 4  テキスト4 5  テキスト5 上記のようなデータベースです。 下記の文で5行目のテキストを抽出する事は出来ています。 $query = 'SELECT * FROM tbl_batsu WHERE id = 5'; ランダム整数を生成し、5つの中から一つランダムにデータを抽出したいと考えています。 $num = rand(1, 5); $query = 'SELECT * FROM tbl_batsu WHERE id = $num'; 上記ですとエラーが出てしまいます。 Query failed: Unknown column '$num' in 'where clause' そんなカラムはありませんという意味だとは思いますが・・・ 初心者なもので的外れな質問になっているかも知れませんが、解決策が分かる方は是非ご教授頂ければありがたいです。 よろしくお願いします。

みんなの回答

回答No.2

こんにちは。 問題は既に解決しているようですが、この辺の理解が不十分、と言う事で指摘しておきます。 引用符 (文字 ')と二重引用符 (")では動作が違いますので、注意してください。 http://jp2.php.net/string すなわち、$numを変数として評価させたい場合は、二重引用符にすればOKです。 $query = "SELECT * FROM tbl_batsu WHERE id = $num";

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

$query = "SELECT * FROM tbl_batsu WHERE id = ". $num ; (余談です) 内部的に生成しているデータであっても SQLインジェクション対策はしてくださいね。上記の回答は インジェクションをまったく考慮していないだめ、セキュリティ的には無防備な方法です。

oku4649
質問者

お礼

ありがとう御座います。 速攻で解決しました・・・ SQLインジェクション対策の方はこれから勉強します!

関連するQ&A

専門家に質問してみよう