我有一個PHP搜索頁面,它使用以下查詢從數據庫中獲取內容。PHP SQL搜索查詢匹配
SELECT * FROM linkBase WHERE (`title` LIKE '%".$s."%') OR (`descr` LIKE '%".$s."%')
這裏是我的數據庫看起來像:
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查詢的結果。我該如何修改查詢,使其返回row 2
以及第二個搜索詞。
問題夏日: 我該怎麼辦,如果用戶輸入未在DB放置隨之彼此兩個詞使用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,它們也會以不同的方式擴展它們,有時它們會使用不同的語法約定來使查詢在它們之間不兼容。請僅使用與您使用的軟件相匹配的標籤。 – axiac
用'%'登錄'$ s'替換空格... –
請注意使用此代碼執行sql注入。嘗試使用參數化查詢。 – MrApnea