2016-12-14 11:26
浏览 46


I seriously need help with GDS and PHP-GDS Library.

I am doing a fetch from outside google appengine using the fantastic php-gds library. So far the library works fine.

My problem is that my data fetch from GDS returns inconsistent results and I have no idea what the issue might be.

Please see code below:

    $offset = 0;
       $query = "SELECT * FROM `KIND` order by _URI ASC limit 300 offset ".$offset;
       $tableList = $this->obj_store->fetchAll($query);
       $offset += count($tableList);
       $allTables[] = $tableList;
       $totalRecords = $offset;

    echo $totalRecords; // i expect total records to be equal to the number of entities in the KIND.
                        // but the results are inconsistent. In some cases, it is correct 
                        // but in most cases it is far less than the total records.
// I could have a KIND with 750 entities and only 721 will be returned in total.
// I could have a KIND with 900 entities and all entities will be returned.
// I could have a KIND with 4000 entities and only 1200 will be returned.

Please help. Also when I run the exact same query in the cloud console I get the right entity count. (Hope this helps someone)


I ended up using cursors. New code below:

  $query = "SELECT * FROM `KIND`";
  $queryInit = $this->obj_store->query($query);
      $page = $this->obj_store->fetchPage(300);// fetch page.
      $tableList = am($tableList,$page); //merge with existing records.
      $this->obj_store->setCursor($this->obj_store->getCursor());//set next cursor to previous last cursor
  }while(!empty($page)); //as long as page result is not empty.
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新