PHP aerospike 驱动程序的 get() 和 scan() 方法不会 return 完整记录

PHP get() and scan() methods for the aerospike driver won't return the full record

我已经将一些数据放入 Aerospike 中,我可以通过 AQL 或 C# 驱动程序毫无问题地查询它。但是当我通过 PHP 驱动程序尝试时,我没有得到返回的完整记录。我在 scan() 方法中观察到了这个问题,之后我用 get() 方法尝试了它,结果相同。

这是带有 get() 方法的代码部分:

$config = ["hosts" => [["addr" => "192.168.x.x", "port" => 3000]]];
$db = new Aerospike($config);
if (!$db->isConnected()) 
{
  echo "Failed to connect to the Aerospike server [{$db->errorno()}]: {$db->error()}\n";
  exit(1);
}

$key = $db->initKey("company", "Company", 2456223);
$status = $db->get($key, $record);
echo "key->".$key['key']."\r\n";
print_r($record['bins']['address']);

输出如下:

key->2456223
Array
(
    [zip] => 12345
    [locality] => mytown
)

和 AQL 输出:

aql> select address from company.Company where pk=2456223
[
  {
    "address": {
      "zip": "12345",
      "locality": "mytown",
      "hidden": "00 01 00 00 00 FF FF FF FF 01 00 00 00 00 00 00 00 04 01 00 00 00 0E 53 79 73 74 65 6D 2E 42 6F 6F 6C 65 61 6E 01 00 00 00 07 6D 5F 76 61 6C 75 65 00 01 00 0B",
      "geoID": 1234,
      "streetAddress": "mystreet 4",
      "region": "here",
      "streetId": 5678
    }
  }
]

知道我做错了什么吗?

似乎 php 在处理 c# blob 类型时遇到了一些问题。看起来地图的 parsing/printing 正在中途中止。由于 blob 是由 c# 编写的,因此似乎能够很好地处理它。但是 PHP 似乎有问题。