I am using RServe and SQL in Java to get data from a database and plot the results in and R plot. This is working fine but now I need to use a variable in the SQL query.
In PHP I know you just need to close the statement, add the variable and the reopen the statement.
However, when I try this in Rserve the page just hangs.
My code is as follows:
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+'\"')))");
Without the WHERE UID=\\"'+UID+'\\"
the code works perfectly so I know this is the problem, I just don't know the solution?
Note: I have also tried using , instead of + as stated in this answer but that didn't seem to work either.
Solved it!
The problem was WHERE UID=\\"'+UID+'\\"
so instead of trying to escape the "
with \\"
I just added some quotes when assigning the session to the String.
Instead of this:
String UID = session.getAttribute("sessionUID").toString();
I used this:
String UID = '"'+session.getAttribute("sessionUID").toString()+'"';
And it now works perfectly! Although I am still puzzled why \\"
was throwing an error.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.