SalesForce查询结果出现问题 - PHP工具包

时间:2013-03-29 06:18:06

标签: php salesforce soql

我正在尝试使用PHP API查询我的SalesForce数据库。我成功地检索了结果,但它们基本上没用。在结果上执行print_r时,我会从以下查询中收到以下结果:

查询:

$query = "SELECT C.Id, C.FirstName, C.LastName, C.Email FROM Contact C WHERE C.Email = '*******@gmail.com'"; 
$response = $client->query($query);

示例 print_r 输出$ response->记录:

stdClass Object (
    [type] => Contact
    [Id] => Array
        (
            [0] => ######
            [1] => ######
        )

    [any] => NameTest*********@gmail.com
)

我希望在输出对象中看到[fields]元素,但是我只看到我的字段为字符串,在此[any]元素中没有分隔符。我正在使用partner.wsdl.xml并且没有问题将数据推送到SF,只检索。有关如何在[any]元素中获取[fields]元素或至少是分隔符的任何想法吗?

4 个答案:

答案 0 :(得分:6)

我与同样的问题作斗争。我最终使用以下代码:

$query = "SELECT C.Id, C.FirstName, C.LastName, C.Email FROM Contact C WHERE C.Email = '*******@gmail.com'";

$response = $mySforceConnection->query($query);

foreach ($response as $record) {
    $sObject = new SObject($record);
    print_r($sObject);
}

答案 1 :(得分:2)

$query = "SELECT C.Id, C.FirstName, C.LastName, C.Email FROM Contact C WHERE C.Email = '*******@gmail.com'";

$response = $mySforceConnection->query($query);

    foreach ($response as $record) {
    $sObject = new SObject($record);

    echo $sObject->fields->FirstName;
    echo $sObject->fields->LastName;
    echo $sObject->fields->Email;
    echo $sObject->Id;  //(Id will show like this)

}

答案 2 :(得分:1)

对于它的价值,我能够通过使用API​​的“检索”方法和“查询”方法来检索字段。我使用查询方法来获取SalesForce ID,因为您可以在查询中指定搜索条件,然后使用具有查询方法中特定ID的retrieve函数。似乎不是最有效的,但它完成了工作。

请参阅“检索记录”部分。

http://wiki.developerforce.com/page/Getting_Started_with_the_Force.com_Toolkit_for_PHP

答案 3 :(得分:1)

您似乎正在取回stdClass而不是SObject。这应该自动发生,但尝试显式传递记录new SObject()构造函数。这样的事情(如果records实际上是一个数组,你需要将它改为循环):

new SObject($response->records);

现在,您应该可以在结果上调用->fields

至于[any]没有显示分隔符,这是因为它们是XML标记,而您正在浏览器中查看它,因此标记将呈现为HTML并消失。尝试查看页面的HTML源代码,您应该看到它们。