2013-08-21 40 views
0

我有一個帶雙引號的字符串。即「我是文本」,當我只搜索這是文本沒有結果顯示。我想用引號和引號來搜索這兩個字符串。那麼查詢做了什麼?使用引號進行搜索並在php中不使用引號mysql

function template($val) 
{ 

    $Qry11=Database::Read("SELECT subcategory.*,C_Name,description FROM subcategory JOIN category ON subcategory.C_id=category.C_id JOIN product_description ON subcategory.S_id = product_description.S_id WHERE S_Name LIKE '%$val%' OR C_Name LIKE '%$val%' group by subcategory.S_id"); 

    $List11 = Array();  
    $thisObjectName11 = get_class($this); 
    while($arr = Database::Reader($Qry11)) 
    { 
     $data = new $thisObjectName11();       

     $data->temp_Id = $arr[S_id]; 

     $data->C_Name = $arr[description]; 

     $data->Nm = $arr[C_Name]; 

     $data->S_Name = $arr[S_Name]; 

     $List11[] = $data; 
    } 
    return $List11; 

} 
+1

,你能否告訴我們查詢? –

+0

我將我的代碼添加到que plz看。 – Lucky

+1

您是否試過在查詢中轉義像\「之類的引號 – Tommassiov

回答

0

在查詢中使用變量。

$var = '"this is text"'; 
$var = mysql_real_escape_string($var); 
0

如果我說對了使用反斜線轉義引號:

WHERE S_Name LIKE '%\"$val\"%' 
0

如果你的條件是單引號像這樣...

WHERE S_Name LIKE '%$val%'

然後,如果你要搜索單報價(')就像$ val一樣。

$val = "some'some";
然後將單次單引號替換爲雙倍時間('到'')和搜索將正常工作。
WHERE S_Name LIKE '%some''some%'

否則在所有搜索可以直接搜索值一樣......

WHERE S_Name LIKE '%some"some%'

所以在這你就不需要在PHP任何斜線......