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


Trouble with SalesForce Query Results - PHP Toolkit

我正在尝试使用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->records的输出:

<>之前stdClass对象([type] =>联系人[Id] => Array([0] => ######[1] => ######)[any] => NameTest*********@gmail.com)之前

我希望在输出对象中看到一个[fields]元素,但是我只看到[any]元素中没有分隔符的字符串字段。我正在使用partner.wsdl.xml,将数据推送到SF没有问题,只有检索没有问题。知道如何在[Any]元素中获得[fields]元素或至少一个分隔符吗?

我也遇到过同样的问题。我最终用下面的代码使它工作:

$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);
}
$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)
}

无论如何,我能够通过使用API的"retrieve"方法和"query"方法来检索字段。我使用查询方法获取SalesForce ID,因为您可以在查询中指定搜索条件,然后使用查询方法中具有特定ID的检索函数。这似乎不是最有效的,但它能完成工作。

请参阅"检索记录"部分。

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

看起来你得到的是stdClass而不是SObject。这应该自动发生,但尝试显式地将记录传递给new SObject()构造函数。类似这样的内容(如果records实际上是一个数组,则需要将其更改为循环):

new SObject($response->records);

现在,您应该能够对结果调用->fields

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