我使用Tom Walder的GDS PHP库访问Google数据存储区。
https://github.com/tomwalder/php-gds
这是我最近的尝试:
require_once 'src/GDS/Entity.php';
require_once 'src/GDS/Gateway.php';
require_once 'src/GDS/Mapper.php';
require_once 'src/GDS/Schema.php';
require_once 'src/GDS/Store.php';
require_once 'src/GDS/Exception/Contention.php';
require_once 'src/GDS/Exception/GQL.php';
require_once 'src/GDS/Gateway/GoogleAPIClient.php';
require_once 'src/GDS/Gateway/ProtoBuf.php';
require_once 'src/GDS/Mapper/GoogleAPIClient.php';
require_once 'src/GDS/Mapper/ProtoBuf.php';
require_once 'src/GDS/Mapper/ProtoBufGQLParser.php';
require_once 'src/GDS/Property/Geopoint.php';
// Build a new entity
$obj_book = new GDS\Entity();
$obj_book->title = 'Romeo and Juliet';
$obj_book->author = 'William Shakespeare';
$obj_book->isbn = '1840224339';
// Write it to Datastore
$obj_store = new GDS\Store('Book');
$obj_store->upsert($obj_book);
$obj_store = new GDS\Store('Book');
foreach($obj_store->fetchAll() as $obj_book) {
echo "Title: {$obj_book->title}, ISBN: {$obj_book->isbn} <br />", PHP_EOL;
}
产生此错误:
Fatal error: Uncaught exception 'Exception' with message 'Could not determine DATASET, please pass to GDS\Gateway\ProtoBuf::__construct()' in /var/www/html/src/GDS/Gateway/ProtoBuf.php:70 Stack trace: #0 /var/www/html/src/GDS/Store.php(81): GDS\Gateway\ProtoBuf->__construct() #1 /var/www/html/test.php(32): GDS\Store->__construct('Book') #2 {main} thrown in /var/www/html/src/GDS/Gateway/ProtoBuf.php on line 70
我真的很难让它发挥作用。如果有人能帮助我,我真的很感激!
答案 0 :(得分:1)
看起来您正在尝试从命令行运行此脚本?
如果你是从GAE&#34; web&#34;环境(如本地Web服务器或实时AppEngine)然后DATASET将由环境定义。
您能确切地确认您是如何使用该库的吗?然后我可以给你指点。
目前 - 尝试运行代码以响应网络请求(即来自http://localhost:8080/test.php - 或其他)
答案 1 :(得分:1)
是的,我是图书馆的作者。
如果您在计算引擎上运行,则需要使用“JSON”Google Gateway。
GitHub上应该有一些样本。