Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 捕获的异常:关键路径元素名称__xyz_quot;无效_Php_Google App Engine - Fatal编程技术网

Php 捕获的异常:关键路径元素名称__xyz_quot;无效

Php 捕获的异常:关键路径元素名称__xyz_quot;无效,php,google-app-engine,Php,Google App Engine,使用PHP-GDS库,当密钥的格式为“\uuuxyz\uuuuz”时,我在尝试“upert”实体时收到一个异常 有没有办法解决这个问题,因为密钥是一个我可能无法控制的用户名,_uxyz_uuu是一个完全有效的用户名。以下是代码和异常消息: $username = "__xyz__"; $obj_user = new Entity(); $obj_user->setKeyName($username); try { $result = $obj_user_store->ups

使用PHP-GDS库,当密钥的格式为“\uuuxyz\uuuuz”时,我在尝试“upert”实体时收到一个异常

有没有办法解决这个问题,因为密钥是一个我可能无法控制的用户名,_uxyz_uuu是一个完全有效的用户名。以下是代码和异常消息:

$username  =  "__xyz__";

$obj_user = new Entity();
$obj_user->setKeyName($username);
try {
  $result = $obj_user_store->upsert($obj_user);
}catch (Exception $e) {
   echo 'Caught exception: ',  $e->getMessage(), "\n";
   return false;
}
例外情况:

Caught exception: The key path element name "__xyz__" is reserved.

不幸的是,没有,你必须编码的用户名是某种方式。或者,我建议使用自动生成的键,并将用户提供的数据存储在值中,而不是键中

对于这种情况,文档是非常糟糕的,在被取代的数据存储Python API的文档中,只有一条提到了这一点:“键名不能以两个下划线开头和结尾
。”。
Java文档并没有对此置之不理。也不是现代的Python API。我找不到任何关于数据存储的PHP文档

但对于所有API都是一样的,因为异常发生在db端,所以使用哪种语言无关紧要(下面都是protobufs)

我只知道双下划线的一种用法:当您构建查询并希望按键升序/降序排序时。您可以通过按名为
的不存在的保留键进行排序来完成此操作