2015-08-13 49 views
0

我用的是下面的命令行從Neo4j的DATABSE文件:出口JSON使用PHP

:POST /db/data/transaction/commit {"statements":[{"statement":"match n return n"}]} 

當我設置此查詢到一個PHP變量,我得到以下錯誤:

Fatal error: Uncaught exception 'Neoxygen\NeoClient\Exception\Neo4jException' with message 'Neo4j Exception with code "Neo.ClientError.Statement.InvalidSyntax" and message "Invalid input ':' in C:\wamp\www\PhpProjectNeo4j1\vendor\neoxygen\neoclient\src\Extension\AbstractExtension.php on line 88 

您能否請我解釋一下如何在PHP中添加此命令?

+0

什麼是你的代碼看起來像現在?什麼是給你這個例外的PHP代碼? – jjaderberg

+0

另外,你有沒有看到AbstractExtension.php的第88行,除了建議? – jjaderberg

+0

我的代碼現在是:'$ queryx =「:POST/db/data/transaction/commit {\」statements \「: \t $ resultx = $客戶機 - > sendCypherQuery($ queryx) - >的getResult();' –

回答

0

你看過NeoClient文檔嗎?

單用法是:

$result = $client->sendCypherQuery('MATCH (n) RETURN n')->getResult();

如果你想出口到JSON,還有在客戶端沒有魔法,只是使用對象返回的節點,創建一個數組,並將其編碼爲JSON:

$nodes = []; 
foreach ($result->getNodes() as $node) { 
    $nodes[] = [ 
      'id' => $node->getId(), 
      'labels' => $node->getLabels(), 
      'properties' => $node->getProperties() 
      ]; 
} 

var_dump(json_encode($nodes)); 

編輯:

爲了有結果的對象,你需要有啓用ResponseFormatting服務:

例如:

$client = ClientBuilder::create() 
    ->addDefaultLocalConnection() 
    ->setAutoFormatResponse(true) 
    ->build(); 
+0

感謝您的反饋。 BU我得到以下錯誤:致命錯誤:調用成員函數getNodes()在非對象在C:\ wamp \ www \ PhpProjectNeo4j1 \ index.php –

+0

您可以發佈您的代碼用於1.構建客戶端2 。發送查詢並輸出json。 –

+0

它現在的作品非常感謝你 –