2016-12-16 13 views
1

Aerospike에 일부 데이터를 입력 했으므로 문제없이 AQL 또는 C# 드라이버를 쿼리 할 수 ​​있습니다. 하지만 필자가 PHP 드라이버를 사용해 보았을 때 전체 레코드가 반환되지 않았습니다. scan() 메서드를 사용하는 동안 문제를 관찰 한 후 동일한 결과를 갖는 get() 메서드를 사용하여 문제를 해결했습니다.aerospike 드라이버에 대한 PHP get() 및 scan() 메서드가 전체 레코드를 반환하지 않습니다.

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 
    } 
    } 
] 

어떤 아이디어

$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']); 

출력은 다음과 같다 : 여기

는 Get() 메소드 코드 부분 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+1

읽으려는 bin의 데이터 유형은 무엇입니까? 지도 ? – sunil

+0

그래서 빈은 "주소"이고 그 유형은 "지도"입니다. – mitereiter

+0

보다 구체적으로 zip-> string, locality-> string, hidden-> blob (원래 부울 유형을 가진 C# 코드로 가져 왔습니다.), geoID-> integer, streetAddress-> string, region-> string, streetID -> integer – mitereiter

답변

1

php가 C# BLOB 유형을 다루는 데 문제가있는 것 같습니다. 지도의 파싱/인쇄가 중간에서 중단되는 것처럼 보입니다. blob이 C#으로 작성되었으므로 제대로 처리 할 수있는 것 같습니다. 그러나 PHP에는 문제가있는 것으로 보입니다.