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

SalesForce查询结果的问题-PHP工具包,php,salesforce,soql,Php,Salesforce,Soql,我正在尝试使用PHPAPI查询我的SalesForce数据库。我正在成功地检索结果,但是它们基本上是无用的。在打印结果时,我从以下查询中收到这些结果: 查询: $query = "SELECT C.Id, C.FirstName, C.LastName, C.Email FROM Contact C WHERE C.Email = '*******@gmail.com'"; $response = $client->query($query); 示例打印\r输出$response->记

我正在尝试使用PHPAPI查询我的SalesForce数据库。我正在成功地检索结果,但是它们基本上是无用的。在打印结果时,我从以下查询中收到这些结果:

查询:

$query = "SELECT C.Id, C.FirstName, C.LastName, C.Email FROM Contact C WHERE C.Email = '*******@gmail.com'"; 
$response = $client->query($query);
示例打印\r输出$response->记录:

stdClass Object ( [type] => Contact [Id] => Array ( [0] => ###### [1] => ###### ) [any] => NameTest*********@gmail.com ) stdClass对象( [类型]=>联系人 [Id]=>阵列 ( [0] => ###### [1] => ###### ) [任何]=>NameTest************@gmail.com )
我希望在输出对象中看到一个[fields]元素,但是我只看到我的字段是一个字符串,在这个[any]元素中没有分隔符。我使用的是partner.wsdl.xml,将数据推送到SF并没有问题,只是检索。有没有关于如何在[Any]元素中获取[fields]元素或至少是分隔符的想法?

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

请参阅“检索记录”部分


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

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


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

我也遇到了同样的问题。我最终用以下代码实现了它:

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

}