如何将php数组设置为属性值Cypher-Neo4j

如何将php数组设置为属性值Cypher-Neo4j,php,cypher,neo4jphp,neo4j,Php,Cypher,Neo4jphp,Neo4j,我有一个php数组$id=[1234454667746789] 我想将此数组设置为关系:knows的属性id的值,表示为 (:user)-[:knows{id:[]}]->(:data) 我使用neo4j的everyman php插件 我尝试了下面的查询,但它给出了一个错误数组无法转换为字符串 $id=[12344,546674,6789]; $client = new Everyman\Neo4j\Client(); $query= "match (u:user

我有一个php数组
$id=[1234454667746789]

我想将此数组设置为关系
:knows
的属性
id
的值,表示为

(:user)-[:knows{id:[]}]->(:data)
我使用neo4j的everyman php插件

我尝试了下面的查询,但它给出了一个错误
数组无法转换为字符串

    $id=[12344,546674,6789];
    $client = new Everyman\Neo4j\Client();
    $query= "match (u:user{id:".$user_id."})-[r:knows]->(c:data)
             set r.id=".$id."";
    $result = new Everyman\Neo4j\Cypher\Query($client, $query);

请帮忙,提前谢谢

我终于找到了解决办法

我发布这个答案是为了帮助其他有同样疑问的人

您可以这样使用数组,而不是直接在cypher查询中指定数组

$id=[12344,546674,6789];
$client = new Everyman\Neo4j\Client();
$query= "match (u:user{id:".$user_id."})-[r:knows]->(c:data)
         set r.id={myid}";
$result = new Everyman\Neo4j\Cypher\Query($client, $query,array('myid' => $id));
希望这有帮助,谢谢

set r.id=".$id."";
错了!无法将数组转换为字符串!这是php错误,不是neo4j

在密码中,数组表示为[1,2,3] 查询应该如下所示

 $query= "match (u:user{id:".$user_id."})-[r:knows]->(c:data)
             set r.id=[" . implode(',', $id) . "]";
使用语句参数更好,但我不知道确切的语法。应该是这样的:

$params = array( 'id' => $id');
$query= "match (u:user{id:".$user_id."})-[r:knows]->(c:data)
             set r.id= {id} ";
    $result = new Everyman\Neo4j\Cypher\Query($client, $query, $params);

谢谢你的回复,我已经找到了答案,请看下面我的答案