在php mysql中用引号搜索并且没有引号

时间:2013-08-21 11:54:08

标签: php mysql search

我有一个带双引号的字符串。即"这是文字"当我只搜索这是文本没有结果显示。我想搜索两个字符串,如引号和没有引号。那么查询的内容是什么?

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;

}

4 个答案:

答案 0 :(得分:0)

在查询中使用变量。

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

答案 1 :(得分:0)

如果我说得对,请使用反斜杠来逃避引用:

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

答案 2 :(得分:0)

如果你的病情是这样的单引号......  

WHERE S_Name LIKE '%$val%'

然后如果你想在$ val中搜索单引号(')。  

$val = "some'some";
然后将单次单引号替换为双倍时间('到'')和搜索将正常工作。  
WHERE S_Name LIKE '%some''some%'

否则在所有搜索中你都可以直接搜索价值...  

WHERE S_Name LIKE '%some"some%'

所以在这里你不需要php中的任何斜杠......

答案 3 :(得分:0)

您可以将json与某些变量(例如

$var = json_encode("this is text");

一起使用,并将此变量传递给查询。