我在Java中使用RServe和SQL从数据库中获取数据并绘制结果和R图。这工作正常,但现在我需要在SQL查询中使用一个变量。
在PHP中我知道你只需要关闭语句,添加变量并重新打开语句。
然而,当我在Rserve中尝试这个时,页面就会挂起。
我的代码如下:
String UID = session.getAttribute("sessionUID").toString();
c.assign("UID", UID);
c.eval("df <- data.frame(dbGetQuery(con, paste('select UID, BuildingCode, "
+ "DATE_FORMAT(AccessTime, \"%d-%b-%Y\") as Date from test WHERE UID=\"'+UID+'\"')))");
没有WHERE UID=\"'+UID+'\"
代码完美无缺,所以我知道这是问题,我只是不知道解决方案?
注意:我也尝试使用,而不是this answer中所述的+,但这似乎也无效。
答案 0 :(得分:0)
解决了!
问题是WHERE UID=\"'+UID+'\"
所以我没有尝试使用"
转义\"
,而是在将会话分配给字符串时添加了一些引号。
而不是:
String UID = session.getAttribute("sessionUID").toString();
我用过这个:
String UID = '"'+session.getAttribute("sessionUID").toString()+'"';
它现在完美无缺!虽然我仍然感到困惑,为什么\"
会抛出错误。