我正在GCP上开发我的数据存储,但我有两个问题,我是一个初学者,我不知道他们的API。我的环境是PHP,我写了这个指令:
$datastore = new DatastoreClient(['keyFilePath' => 'myKey']);
我如何知道连接已准备就绪?我在找一个例子:
if( $datastore->status_code === 200)
例如,200个代码已经准备好了。这个问题会影响第二个问题。当我试图从数据存储中获取一些信息时,如果我使用var_dump($datastore)
,谷歌的响应是非常巨大的,我迷路了,我的数据在哪里?该响应包含关于小时、地理位置、浏览器等的信息。这是我的代码:
$query = $datastore->query();
$query->kind('foo');
$result = $datastore->runQuery( $query );
print_r( $result );
其中foo
作为参数是我在数据存储上的类型。正如我所说的,响应是一个非常大的对象,我如何将其解析为JSON格式?
发布于 2018-05-29 08:42:44
如果您在调用DatastoreClient实例时没有收到任何错误,则表示您已成功通过身份验证。除了进行API调用之外,没有单独的“测试连接”方法。
来自runQuery
的响应不能直接序列化。由于查询可能会返回较大的结果集,因此可能会将结果拆分为多个页面。Google Cloud PHP将为您处理此问题,但它会使处理响应变得稍微复杂一些。
如果想要json序列化响应,可以使用iterator_to_array()
$json = json_encode(iterator_to_array($result));
在使用它时要小心,因为如果您的查询匹配一个非常大的结果集,它可能会导致大量的API调用。
如果需要显示或处理查询结果,只需使用foreach
遍历$result
foreach ($result as $row) {
// Each `$row` will be an instance of `Google\Cloud\Datastore\EntityInterface`.
print_r($row);
}
https://stackoverflow.com/questions/50572404
复制相似问题