mssql+;php准备的语句语法错误,使用%
我有一个小代码片段:mssql+;php准备的语句语法错误,使用%,php,sql,sql-server,syntax,Php,Sql,Sql Server,Syntax,我有一个小代码片段: $sql .= " (cOriginalFilename LIKE %?%)"; 这是完整的查询: Select cMsgID, cDocType, cOriginalFilename, cSubAddress1, cRecipientID, cSenderID, cStatus, cStatusDateTime From tMessage
$sql .= " (cOriginalFilename LIKE %?%)";
这是完整的查询:
Select cMsgID,
cDocType,
cOriginalFilename,
cSubAddress1,
cRecipientID,
cSenderID,
cStatus,
cStatusDateTime
From tMessages
Where (cOriginalFilename LIKE %?%)
确切错误消息:
数组([0]=>Array([0]=>42000[SQLSTATE]=>42000[1]=>102[code]=>102[2]=>[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]在“@P1”附近语法不正确。[消息]=>[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]在“@P1”附近语法不正确)
正如您所看到的,它正在生成一个准备好的语句,但它给了我一个无效的语法错误。当我删除%s时,它会工作。如何修改语法以使用%s?我找不到有关此主题的任何信息
注意:这是php和mssql需要在您分配给参数的变量中加入%符号,而不是在查询中。您已经接近-只需为此引用
%
通配符即可:
Select cMsgID,
cDocType,
cOriginalFilename,
cSubAddress1,
cRecipientID,
cSenderID,
cStatus,
cStatusDateTime
From tMessages
Where (cOriginalFilename LIKE '%' + ? + '%')
@Siyual谢谢你,成功了!我从来不擅长计算语法。如果你发表评论作为答案,我会很高兴地选择它作为解决问题的答案。领先你一步,哈哈。没问题:)stackoverflow刷新了我:)我认为这个解释同样好。我通常把
%
放在values.Ty@Evert中,我想知道为什么我被否决了。但我不是唯一一个用这个的人。