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]Incorrect syntax near '@P1'. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near '@P1'. ) )
如您所见,它正在制作一个准备好的语句,但它给我一个无效的语法错误。当我删除 %s 时它起作用了。我应该如何修改语法以使用 %s?我找不到关于此主题的任何信息。
注意:这是 php 和 mssql
% 符号需要放在您分配给参数的变量中,而不是在查询中。
你很接近 - 为此只需要引用 %
通配符:
Select cMsgID,
cDocType,
cOriginalFilename,
cSubAddress1,
cRecipientID,
cSenderID,
cStatus,
cStatusDateTime
From tMessages
Where (cOriginalFilename LIKE '%' + ? + '%')
我有这个小代码片段:
$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]Incorrect syntax near '@P1'. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near '@P1'. ) )
如您所见,它正在制作一个准备好的语句,但它给我一个无效的语法错误。当我删除 %s 时它起作用了。我应该如何修改语法以使用 %s?我找不到关于此主题的任何信息。
注意:这是 php 和 mssql
% 符号需要放在您分配给参数的变量中,而不是在查询中。
你很接近 - 为此只需要引用 %
通配符:
Select cMsgID,
cDocType,
cOriginalFilename,
cSubAddress1,
cRecipientID,
cSenderID,
cStatus,
cStatusDateTime
From tMessages
Where (cOriginalFilename LIKE '%' + ? + '%')