如何使用GQL使用管理控制台数据存储查看器插入记录

时间:2011-12-12 14:31:42

标签: google-app-engine gql

是否可以使用Admin> INSERT或UPDATE数据存储区中的实体?数据存储查看器。

E.g。执行像

这样的事情
INSERT INTO table VALUES (Foo='Bar')

3 个答案:

答案 0 :(得分:7)

不使用GQL,但可以使用数据存储查看器来INSERT和UPDATE实体。

INSERT :点击数据存储查看器后,点击顶部的创建标签,选择一种,按下一步,填写值并按保存实体

更新:在数据存储查看器中,单击 ID /名称标识符,更改值并按保存实体

答案 1 :(得分:4)

不,你不能; GQL是一种类似SQL的语言,仅用于检索实体或密钥。

您可以使用数据存储查看器或应用程序代码插入,更新或删除实体。

答案 2 :(得分:1)

使用Google_Client.php插入:

<?php
//https://developers.google.com/apis-explorer/#p/datastore/v1beta2/
const APP_NAME='a-test-com';
const SERVICE_ACCOUNT_NAME='511908282087@developer.gserviceaccount.com';
$_PRIVATE_KEY=file_get_contents('data/34672-privatekey.p12');
require_once 'google-api-php-client/Google_Client.php';

$client=new Google_Client();
$credentials=new Google_AssertionCredentials(SERVICE_ACCOUNT_NAME,
                                             array('https://www.googleapis.com/auth/userinfo.email',
                                                   'https://www.googleapis.com/auth/datastore'
                                                  ),
                                             $_PRIVATE_KEY
                                            );
$client->setAssertionCredentials($credentials);

$postBody=json_encode(array('mode'=>'NON_TRANSACTIONAL','mutation'=>array('upsert'=>array(
          array('key'=>array('partitionId'=>array('datasetId'=>'s~'.APP_NAME),
                             'path'=>array(array('kind'=>'Guestbook',
                                                 'name'=>'my_guestbook'
                                                )
                                          )
                            ),
                'properties'=>array('guest_name'=>array('stringValue'=>'my name1 my name1'))
               )
          ))));
$httpRequest=new Google_HttpRequest('datastore/v1beta2/datasets/'.APP_NAME.'/commit', 'POST', null, $postBody);
$head=array('content-type'=>'application/json; charset=UTF-8',
            'content-length'=>Google_Utils::getStrLen($postBody)
           );
$httpRequest->setRequestHeaders($head);
$httpRequest=Google_Client::$auth->sign($httpRequest);
$result=Google_REST::execute($httpRequest);
var_export($result);
?>