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 似乎有问题。
我已经将一些数据放入 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 似乎有问题。