2014-02-24 64 views
1

我有一個PHP數組$id=[12344,546674,6789];如何設置PHP數組作爲屬性值的Cypher-Neo4j的

我想成立這個數組作爲關係:knows的財產id的值,表示爲

(:user)-[:knows{id:[]}]->(:data) 

我用普通人的PHP插件Neo4j的

我曾嘗試下面的查詢,但它給了一個錯誤Array cannot be converted to string

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

請幫幫忙,提前

回答

1

感謝我終於找到了解決辦法,

我張貼這個答案,以幫助有同樣的懷疑其他人。

而不是直接指定的暗號查詢數組,你可以使用它像這樣

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

希望這會有所幫助,謝謝

0
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); 
+0

謝謝您的回覆,我已經找到答案,請參閱下面的答案 – SarathSprakash

相關問題