首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >连接和查询Google Cloud Platform - PHP

连接和查询Google Cloud Platform - PHP
EN

Stack Overflow用户
提问于 2018-05-29 03:19:10
回答 1查看 78关注 0票数 0

我正在GCP上开发我的数据存储,但我有两个问题,我是一个初学者,我不知道他们的API。我的环境是PHP,我写了这个指令:

代码语言:javascript
复制
$datastore = new DatastoreClient(['keyFilePath' => 'myKey']);

我如何知道连接已准备就绪?我在找一个例子:

代码语言:javascript
复制
if( $datastore->status_code === 200)

例如,200个代码已经准备好了。这个问题会影响第二个问题。当我试图从数据存储中获取一些信息时,如果我使用var_dump($datastore),谷歌的响应是非常巨大的,我迷路了,我的数据在哪里?该响应包含关于小时、地理位置、浏览器等的信息。这是我的代码:

代码语言:javascript
复制
    $query = $datastore->query();
    $query->kind('foo');
    $result = $datastore->runQuery( $query );
    print_r( $result );

其中foo作为参数是我在数据存储上的类型。正如我所说的,响应是一个非常大的对象,我如何将其解析为JSON格式?

EN

回答 1

Stack Overflow用户

发布于 2018-05-29 08:42:44

如果您在调用DatastoreClient实例时没有收到任何错误,则表示您已成功通过身份验证。除了进行API调用之外,没有单独的“测试连接”方法。

来自runQuery的响应不能直接序列化。由于查询可能会返回较大的结果集,因此可能会将结果拆分为多个页面。Google Cloud PHP将为您处理此问题,但它会使处理响应变得稍微复杂一些。

如果想要json序列化响应,可以使用iterator_to_array()

代码语言:javascript
复制
$json = json_encode(iterator_to_array($result));

在使用它时要小心,因为如果您的查询匹配一个非常大的结果集,它可能会导致大量的API调用。

如果需要显示或处理查询结果,只需使用foreach遍历$result

代码语言:javascript
复制
foreach ($result as $row) {
    // Each `$row` will be an instance of `Google\Cloud\Datastore\EntityInterface`.
    print_r($row);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50572404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档