Mssql +php准备的语句语法错误使用%


mssql+php prepared statements incorrect syntax using %

我有这样一小段代码:

$sql .= " (cOriginalFilename LIKE %?%)";

,这是完整的查询:

Select  cMsgID, 
        cDocType, 
        cOriginalFilename, 
        cSubAddress1, 
        cRecipientID, 
        cSenderID, 
        cStatus, 
        cStatusDateTime
From    tMessages
Where   (cOriginalFilename LIKE %?%)

确切的错误信息:

Array ([0] => Array ([0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code] => 102 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server] '@P1'附近语法错误。[message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server] '@P1'附近语法错误。))

正如你所看到的,它正在制作一个准备好的语句,但它给了我一个无效的语法错误。当我删除%s时,它工作了。我应该如何修改语法来处理% 5 ?我找不到任何关于这个话题的信息。

注意:这是php和mssql

你接近了- %通配符只需要引号:

Select  cMsgID, 
        cDocType, 
        cOriginalFilename, 
        cSubAddress1, 
        cRecipientID, 
        cSenderID, 
        cStatus, 
        cStatusDateTime
From    tMessages
Where   (cOriginalFilename LIKE '%' + ? + '%')

%符号需要放在您分配给参数的变量中,而不是在查询中。