使用PHP从Neo4j数据库导出json文件

时间:2015-08-14 08:26:00

标签: php json node.js

为此,我使用了以下代码:

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

var_dump(json_encode($nodes));

但是我收到以下错误:

致命错误:在C:\ wamp \ www \ PhpProjectNeo4j1 \ index.php中的非对象上调用成员函数getNodes()

1 个答案:

答案 0 :(得分:0)

您正尝试在空白或不存在的对象上调用函数。首先打印返回查询的结果。

可能查询不返回任何结果,但首先需要连接到neo4j数据库

以下是如何执行此操作的示例:

https://github.com/neo4j-examples/movies-php-neoclient/blob/fe5fd9222945ca8e9efc4ab3cac6b743f2ff8b24/index.php

$client = ClientBuilder::create()
    ->addConnection('default', $cnx['scheme'], $cnx['host'], $cnx['port'], true, $cnx['user'], $cnx['pass'])
    ->setAutoFormatResponse(true)
    ->setDefaultTimeout(20)
    ->build();

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

一种常见的方法是在遍历数组之前测试返回的结果空白。

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