2017-12-14 32 views
0

こんにちは、私は現在この問題に固執しています。私はDB上で何かを検索しようとしており、結果を返さない。以下は私のコードです。LIKEを使用したLaravelクエリは結果を返しません

検索文字列1 =ボストン・セルティックス

検索文字列2 =ボストン・セルティックスできません

DBのPOST_TITLE =ボストン・セルティックスはブルズ損失の影響が難しいストレッチ任せることはできない

QUERY

$data = $searchPost->where('post_title', 'like', '%'.$search.'%') 
      ->orderBy('post_date', 'desc') 
      ->offset($offset) 
      ->limit($limit) 
      ->get(); 

検索文字列1は結果を返しますが、検索文字列2は返しません。

答えて

2

シンプルなので、別の文字列を検索しています。

検索文字列2 ".. Can not .."を使用ストレート引用符

DBのPOST_TITLE "..することはできません" カーリー引用を使用しています。

参考

:あなたのコードが原因can't'の文字列を壊す可能性があります)

1:Straight and curly quotes

0

私が最初に推測したのは、アポストロフィが非難される可能性があるということです.SQL Serverでは連結演算子が「+」なので、正しいかどうかを確認することもできます。多分にアポストロフィ文字を削除してみてください:

($の検索を、「」「」「」)に取って代わるのMicrosoft SQLで

つの単一引用符単一引用符のエスケープシーケンスです。

0

は、次のコードを試してみてください。

$data = $searchPost->where('post_title', 'like', "%{$search}%") 
      ->orderBy('post_date', 'desc') 
      ->offset($offset) 
      ->limit($limit) 
      ->get(); 
+0

を変更するstr_replaceメソッドを使用するように... ' "%{$検索}%" をしていませんでした% '。 $ search。 '%' ' – lagbox

0

は、あなたが「 前%が最終的には%の後に開始し、別の時にそこにある見ることができるように、この

$data = $searchPost->where('post_title', 'like', '"%'.$search.'%"') 
     ->orderBy('post_date', 'desc') 
     ->offset($offset) 
     ->limit($limit) 
     ->get(); 

を試してみてください

前に同じ問題を抱えていた。

0

あなたが慎重にあなたの検索とあなたのDBに表示されない場合、'は同じに見えません

することができません 対はできません

'は検索されないことができることを確認して、同じでないとき。シンプル。

0

は「=== PHP側、 'DB' 側にそれを壊すかもしれないアポストロフィ文字

$search = str_replace('-', ' ', urldecode($request->input('search'))); 
$search = str_replace("'", "’", $search); 
関連する問題