0

我正在尝试使用 Jadell 的 Neo4jPHP 实现基本的基于事务的查询。

这是我的代码:

$transaction = $client->beginTransaction();
$query = new Query($client, "CREATE UNIQUE (u:users {email})-[r:visited {'time':'1425283200'}]->(e:halls {hallId}) RETURN r", array('email' => array('email' => 'test@test.com'), 'hallId' => array('hallId' => 1234)));
$result = $transaction->addStatements($query);
$transaction->commit();

我收到一个错误:

[message] => 无效输入 ''':预期的空格、属性键名、'}'、标识符或 UnsignedDecimalInteger(第 1 行,第 52 列)\n

关于这里出了什么问题的任何线索?

更新

我尝试了以下(删除的参数),但仍然出现错误:

$transaction = $client->beginTransaction();
$query = new Query($client, "CREATE UNIQUE (u:users {'email':'" . $email . "'})-[r:visited]->(e:halls {'hallId':'" . $hallId . "'}) RETURN r");
$result = $transaction->addStatements($query);
$transaction->commit();

收到错误:

[消息] => 无法反序列化请求:无法从 START_ARRAY 令牌中反序列化 java.util.LinkedHashMap 的实例\n

4

1 回答 1

0

这应该有效。使用查询参数而不是字符串连接

$transaction = $client->beginTransaction();
$cypher="CREATE UNIQUE (u:users {email:{email}})-[r:visited]->(e:halls {hallId:{hallId}}) RETURN r";
$query = new Query($client,$cypher,array('email'=>$email,'hallId'=>$hallId));
$result = $transaction->addStatements($query);
$transaction->commit();
于 2015-04-27T16:52:48.843 回答