我一直在努力将移动应用程序与SimpleDB集成,并且在测试Select空白的响应方面遇到了问题。我不是一个OO PHP程序员,我很难看清代码。
以下是获取我需要的所有项目的相关代码:
foreach ($duuids as $duuid) {
$results = null;
$select_expression = "SELECT * FROM `thestore` WHERE thing IS NOT NULL AND duuid='" . $duuid . "' ORDER BY thing DESC LIMIT 100";
$next_token = null;
do {
if ($next_token)
{
$results = $sdb->select($select_expression, array(
'NextToken' => $next_token,
));
}
else
{
$results = $sdb->select($select_expression);
}
foreach ($results->body->Item() as $item) {
array_push($items, $item);
}
$next_token = isset($results->body->SelectResult->NextToken)
? (string) $results->body->SelectResult->NextToken
: null;
}
while ($next_token);
}
我的问题是,有时候没有为duuid上传任何数据,所以结果集为空,这打破了“foreach($ results-> body-> Item()为$ item)”
根据SDK Docs,select()返回一个CFResponse,其中$ results-> body是一个SimpleXML文档。我已经尝试了一些方法来计算SimpleXML文档中的子对象,例如“$ results-> body-> SelectResult-> count()”,但这似乎不起作用。
问题:
测试此结果空虚的适当方法是什么?
答案 0 :(得分:1)
试试这个:
if($results->body->SelectResult->Item()){
// process the children
}
您认为count()
功能可以正常工作,但似乎没有做正确的事情。奇怪的是......
答案 1 :(得分:0)
我不是PHP程序员,但可以给你一些想法 -
选择结果>>获取商品>>检查属性MAP的大小