jfinal mysql多级select 查询 参数无法注入 急急急

如下sql里面这一层参数#para(userId)无法注入

select (select user_name from user_info where user_id = #para(userId)) as userName



这样就可以注入进来但是不是字符串

select (select user_name from user_info where user_id = #(userId)) as userName



现有有这样一个情况 我需要注入字符串的参数再select里面的层级 但是参数一直无法注入 求解

select (select user_idfrom user_info where user_name= #para(userName)) as userId

评论区

JFinal

2020-01-07 19:03

#para 所到之处,永远是生成一个问号占位符, 注意看文档

如果你要输出参数值,使用:#(value)

如果你希望这个参数值输出来外层有单引号,可以使用:'#(value)'

koolss

2020-01-10 15:54

@JFinal 感谢您的回复 我要的就是 '#(value)' 抱拳

JFinal

2020-01-10 16:05

@koolss 指令与表达式部分才是动态的,其它部分全都是静态内容,会原样输出

具体到 '#(value)' 这种用法,输出指令与表达式 value 是动态部分,而前后的单引号属于静态内容

这个是所有模板引擎最基本的规则,一定要牢记