Я пытался интегрировать мобильное приложение с SimpleDB, и у меня возникла проблема с проверкой ответа Select на пустоту.Я не особо разбираюсь в программировании на 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 ()», но, похоже, это не работает.
Вопрос:
Как правильно проверить пустоту этого результата?