- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:LIKE述語/SQLとPHPを使った検索フォーム)
LIKE述語/SQLとPHPを使った検索フォーム
このQ&Aのポイント
- SQLとPHPを使った検索フォームで、名前を入力して該当する行を検索する方法を教えてください。
- 検索フォームに入力された名前を使って、SQLのLIKE述語を使って部分一致検索を行いたいです。
- 詳しい検索フォームの実装方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>ご指摘の通りに書き換えましたが、検索できませんでした。 一番高い可能性としては、POSTされたデータのキャラクターコードと DBに格納されたキャラクターコードが異なるということです この手のテストをする場合はキャラクターコードでの差異が出づらい 「英数字のみ」でまずテストをすることをお勧めします。 ここで動作確認ができたら次の段階として日本語検索を試してください プリペアドステートメントについてはphpマニュアルなどご一読ください http://www.php.net//manual/ja/pdo.prepared-statements.php
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
>name LIKE='%" . $_POST["name"] . "%' " だと name LIKE='%山%' になっちゃいますね イコールをとって、 name LIKE '%" . $_POST["name"] . "%' " にしてください。 ちなみにPOSTされてきたデータをそのままSQLに組み込むのはNGです PDOをつかっているならプリペアド処理をしてください
質問者
お礼
ご回答ありがとうございました。 ご指摘の通りに書き換えましたが、検索できませんでした。 (結果が空白になってしまいます。) 当方、SQLの初心者で、「プリペアド処理」という言葉もはじめて知りました。 何か根本的にやり方が間違っているのでしょうか。 時間をかけて勉強するつもりですが、もし、他にヒントになるようなことがありましたら、教えていただければと思います。 お手数をおかけして申し訳ありませんでした。
お礼
ありがとうございました! いろいろいじっていたら、動きました。 プリペアドステートメントについても参考サイトを教えていただき本当にありがとうございました。 まだまだ意味もよくわからずにとにかく作っている状況です。 今後も勉強していきますので、また機会がありましたらよろしくお願いします。