使用LIKE搜索字符串创建SOQL查询时,我没有得到任何答案或错误。这是我的代码,我在那里寻找字符串“John G.”
$instance_url."/services/data/v45.0/query/?q=SELECT+Id,+First_Name__c,+Last_Name__c,+Lead__c,+HA_Review_Identifier__c+FROM+Reviews__c+WHERE+HA_Review_Identifier__c+LIKE+'%".$row['review_by']."%'";
API连接正常工作,因为当我使用下面的代码时它运行良好。
$instance_url."/services/data/v45.0/query/?q=SELECT+Id,+First_Name__c,+Last_Name__c,+Lead__c,+HA_Review_Identifier__c+FROM+Reviews__c+WHERE+HA_Review_Identifier__c+=+'".$row['review_by']."'";
仅当$row['review_by']
在Salesforce及以上查询中为数字时才有效。
我读到我应该使用参数化搜索,如下所示:
$instance_url."/services/data/v45.0/parameterizedSearch/?q='".$row['review_by']."'&sobject=Reviews__c&Reviews__c.fields=Id,First_Name__c";
但这不起作用。
谢谢
更新:当我将SF HA_Review_Identifier__c
更改为数值并使用没有%
的第一个查询然后它工作,我得到结果。所以%
就是问题所在。不知道如何编码,
正确的查询是:
$instance_url."/services/data/v45.0/query/?q=SELECT+Id,+First_Name__c,+Last_Name__c,+Lead__c,+HA_Review_Identifier__c+FROM+Reviews__c+WHERE+HA_Review_Identifier__c+LIKE+".urlencode("'%".$row['review_by']."%'")."";
需要使用PHP函数urlencode()
,但仅适用于具有%
字符的URL部分。
urlencode("'%".$row['review_by']."%'")
希望它会帮助某人。谢谢你的期待。