【问题标题】:How to use LIKE when making cURL SOQL query via PHP? [duplicate]通过 PHP 进行 cURL SOQL 查询时如何使用 LIKE? [复制]
【发布时间】:2019-09-08 03:55:07
【问题描述】:

使用 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 更改为数值并使用没有 % 的第一个查询时,它可以工作并且我得到结果。 所以% 是问题所在。不知道怎么编码,

【问题讨论】:

    标签: php curl soql


    【解决方案1】:

    正确的查询是:

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

    希望它会帮助某人。 感谢观看。

    【讨论】:

    • 整个 URL 查询字符串需要编码,如副本中所述。
    猜你喜欢
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 2013-08-04
    • 2013-12-26
    • 1970-01-01
    相关资源
    最近更新 更多