簡體   English   中英

如何使用 php 和 neo4j 在節點之間創建關系

[英]how can i create relationships between nodes using php and neo4j

我正在通過表單和 php 創建節點,參數通過 POST 獲取到 neo4j 數據庫。 我想要做的是在我輸入人員節點時創建節點之間的關系,以便自動創建關系並且只創建一次。

$nombre = $_POST["nombre"];
$cedula = $_POST["cedula"];
$edad = $_POST["edad"];
$cedulaP = $_POST["cedulaP"];
$cedulaM = $_POST["cedulaM"];
$genero = $_POST["genero"];

$results = $client->runStatements([
        Statement::create('CREATE (p:Persona {nombre: $nombre, cedula: $cedula, edad: $edad, 
         cedulaP: $cedulaP, cedulaM: $cedulaM, genero: $genero })', 
        ['nombre' => $nombre, 'cedula' => $cedula, 'edad' => $edad, 'cedulaP' => $cedulaP, 
        'cedulaM' => $cedulaM, 'genero' => $genero]),

當通過表單輸入一個新的人節點時,我希望它創建關系,只要變量 cedulaP 等於 cedula(這個 cedula 來自父節點)。 它是一種家譜。 我遇到的問題是,當我輸入一個新節點時,它會給我一個錯誤。

$results1 = $client->run('MATCH (a:Persona),(b:Persona) WHERE a.cedulaP = b.cedula CREATE (b)-[r:PADRE]->(a)');

我認為我的語法錯誤,請有人可以幫助我

我認為它與 PHP 庫無關。 您可以同時進行兩個查詢,並且可以將節點屬性簡化為字典。

$nombre = $_POST["nombre"];
$cedula = $_POST["cedula"];
$edad = $_POST["edad"];
$cedulaP = $_POST["cedulaP"];
$cedulaM = $_POST["cedulaM"];
$genero = $_POST["genero"];

$properties = ['nombre' => $nombre, 'cedula' => $cedula, 'edad' => $edad, 'cedulaP' => $cedulaP, 'cedulaM' => $cedulaM, 'genero' => $genero];

$statement = new Statement('CREATE (p:Persona $props) 
WITH p 
MATCH (b:Persona) WHERE p.cedulaP = b.cedula 
CREATE (b)-[r:PADRE]->(a)', [$props => $properties]);
$client->runStatement($statement, 'default');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM