- 締切済み
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' そんなカラムはありませんという意味だとは思いますが・・・ 初心者なもので的外れな質問になっているかも知れませんが、解決策が分かる方は是非ご教授頂ければありがたいです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
こんにちは。 問題は既に解決しているようですが、この辺の理解が不十分、と言う事で指摘しておきます。 引用符 (文字 ')と二重引用符 (")では動作が違いますので、注意してください。 http://jp2.php.net/string すなわち、$numを変数として評価させたい場合は、二重引用符にすればOKです。 $query = "SELECT * FROM tbl_batsu WHERE id = $num";
- inu2
- ベストアンサー率33% (1229/3720)
$query = "SELECT * FROM tbl_batsu WHERE id = ". $num ; (余談です) 内部的に生成しているデータであっても SQLインジェクション対策はしてくださいね。上記の回答は インジェクションをまったく考慮していないだめ、セキュリティ的には無防備な方法です。
お礼
ありがとう御座います。 速攻で解決しました・・・ SQLインジェクション対策の方はこれから勉強します!