executeWithParameter E_SYNTAX_ERROR

  • nebula 版本:3.0.0
  • 部署方式:单机
  • 安装方式:RPM
  • 是否为线上版本:N

使用nebula-java连接服务,送参数格式方式调用(防止SQL注入),服务器返回错误

execute sentence : USE $p1;, params : {“p1”:“medical”}
execute result : false, message :SyntaxError: syntax error near `$p1’

问题:
是只有部分特定查询支持,还是我调用的方式有问题?

ResultSet execute = session.executeWithParameter(sentence, params);

用的方式不对,你可以参考下 https://github.com/vesoft-inc/nebula-java/blob/e3207167dbf574ab0b84a9ff9d8563129a088c2d/client/src/test/java/com/vesoft/nebula/client/graph/net/TestSession.java#L184-L256

1 个赞

E_SYNTAX_ERROR 报这个错 是语法错误

Map<String, Object> params = new HashMap<>();
params.put(“p1”, “medical”);
ResultSet execute = session.executeWithParameter(“USE $p1;”, params);

按照demo来处理的,提示错误信息

错误信息还是一样吗

之前就是按照这种方式处理的,均返回当前错误

参数目前只支持在 cypher 语法中使用,而且并不是所有的 token 都可以参数化,可以参考下 neo4j parameter usage

1 个赞

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。