0

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

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

4 回答 4

0

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

WHERE S_Name LIKE ' %$val% '

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

$val =“一些”;
然后将单次单引号替换为双倍时间(' to '')并搜索将正常工作。
WHERE S_Name LIKE ' %some''some% '

否则在所有搜索中,您可以直接搜索值,例如...

WHERE S_Name LIKE ' %some"some% '

所以在这个你不需要在php中使用任何斜线......

于 2013-08-21T12:54:30.480 回答
0

在查询中使用变量。

$var = '"this is text"';
$var = mysql_real_escape_string($var);
于 2013-08-21T12:00:40.143 回答
0

如果我正确使用反斜杠来转义引号:

 WHERE S_Name LIKE '%\"$val\"%'
于 2013-08-21T12:02:40.273 回答
0

您可以将 json 与一些变量一起使用

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

,并将此变量传递给您的查询。

于 2019-07-25T11:15:48.550 回答