私はPHPでデータベースからコンテンツを取得するために次のクエリを使用する検索ページを持っています。ここでPHP SQLの検索クエリの照合
SELECT * FROM linkBase WHERE (`title` LIKE '%".$s."%') OR (`descr` LIKE '%".$s."%')
が私のDBがどのように見えるかです:
今id |title |descr
-----------------------------------------
1 |Hello World |This is a hello world description
2 |PiedPiper |The silicon valley company PiedPiper
3 |StackOverflow |Ask questions on programming
私は$s = "silicon valley"
の値でこのクエリを実行する場合、例えば、そして、それはrow 2
をフェッチします。これは問題ありません。しかし、ユーザーがsilicon PiedPiper
という検索語を入力するとどうなりますか?上記のSQLクエリでは結果は返されません。 2番目の検索語句を使用してrow 2
を返すような方法でクエリを変更するにはどうすればよいですか。夏
質問: がどのように結果は、ユーザーがDBに互いにその結果として配置されていない2つの単語を入力しても返されるようにPHPとSQLを使用した検索クエリを行うことができます
[MySQL](https://dev.mysql.com/doc/refman/5.7/en/)と[SQL Server](https://docs.microsoft.com/en-us/sql/t- sql/language-reference)は、異なる企業によって作成された異なるソフトウェアパッケージです。両方ともSQLを実装していても、SQLをさまざまな方法で拡張します。また、異なる構文規則を使用して、クエリ間で互換性がない場合もあります。使用しているソフトウェアと一致するタグのみを使用してください。 – axiac
'$ s'の'% '記号でスペースを置き換えてください... –
このコードでは、SQLインジェクションに注意してください。代わりにパラメータ化されたクエリを使用してみてください。 – MrApnea