2

我使用 Quercus 在谷歌应用引擎上运行 php,并使用 GAE LowLevel Api 连接数据存储。我需要数据存储区中的 CRUD(创建、读取、更新、删除)示例 php 代码。我有创建和阅读示例 php 代码。

创建数据存储条目

<?php
import com.google.appengine.api.datastore;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.DatastoreServiceFactory;

$entity = new Entity("test"); 
$entity->setProperty('field1','value1');
$entity->setProperty('field2','value2');
$dataService = DatastoreServiceFactory::getDatastoreService();
$dataService->put($entity);
?>

查询数据存储

<?php
import com.google.appengine.api.datastore;
import com.google.appengine.api.datastore.Query;
import com.google.appengine.api.datastore.DatastoreServiceFactory;

$q = new Query('test');
//http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Query.html
$q->addFilter('field1','EQUAL' ,'value1');
$dataService = DatastoreServiceFactory::getDatastoreService();
$prepared = $dataService->prepare($q);
foreach($prepared->asIterable() as $i) {
echo $field1 = $i->getProperty('field1');
echo $field2 = $i->getProperty('field2');
}
?>

有谁知道如何使用 php删除更新数据存储中的条目?

4

1 回答 1

1

the DatastoreService.put() call works for both create and update. the app engine datastore doesn't differentiate between them at the API level. so, the code in your first example should work for update too. just use an existing entity that you got from a get() or query.

as for delete, i haven't tried this, but based on your example code, both $dataService->delete($key) and $dataService->delete($entity->key()) should work, depending on whether you have a key or an entity.

于 2011-01-31T19:50:03.807 回答