4

我使用 Quercus 在谷歌应用引擎上运行 php,并且我使用下面的代码将值插入到 GAE 数据存储(BigTable)。

<?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('story',' --- more than 500 char ---');
$dataService = DatastoreServiceFactory::getDatastoreService();
$dataService->put($entity);
?>

但返回流动错误,因为故事值超过 500 个字符。

error:
com.caucho.quercus.QuercusException: com.google.appengine.api.datastore.Entity.setProperty: story: String properties must be 500 characters or less. Instead, use com.google.appengine.api.datastore.Text, which can store strings of any length.

我对java一无所知。有谁知道如何在我的 php 代码中使用com.google.appengine.api.datastore.Text 。

谢谢

4

2 回答 2

5

这行得通吗?

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


$entity = new Entity("test"); 
$TextValue = new Text(' --- more than 500 char ---');
$entity->setProperty('story',$TextValue);
$dataService = DatastoreServiceFactory::getDatastoreService();
$dataService->put($entity);
?>
于 2010-12-02T21:47:47.577 回答
1

不要为“setProperty”的第二个参数传入字符串,而是创建一个新的 com.google.appengine.api.datastore.Text 并将其传入。

看起来你应该知道如何做到这一点。

在此处查看“setProperty”的定义: http ://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Entity.html

于 2010-12-02T21:43:44.890 回答