Как использовать LIKE при выполнении запроса cURL SOQL через PHP? - PullRequest
0 голосов
/ 17 апреля 2019

При создании запроса SOQL с LIKE для поиска строки я не получаю ни ответа, ни ошибки. Это мой код, где я ищу строку «Джон Дж.»

$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";

Но это не работает.

Спасибо

UPDATE: Когда я изменяю SF HA_Review_Identifier__c на числовое значение и использую первый запрос без %, он работает, и я получаю результат. Таким образом, % является проблемой. Не уверен, как его кодировать,

1 Ответ

0 голосов
/ 18 апреля 2019

Правильный запрос:

$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']."%'")

Надеюсь, это кому-нибудь поможет.Спасибо за поиск.

...