我正在尝试使用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]元素或至少是分隔符的任何想法吗?
答案 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源代码,您应该看到它们。