jsp+mysql在做模糊查询时候的参数绑定问题

jsp+mysql在做模糊查询时候的参数绑定问题,第1张

这样绑定不对,你穿进去的是带""的,你得稍微改下逻辑了应该改为

String sql="select * from book where name like '%"+value1+"%' or author like'%"+value2+"%'"

这样拼接没问题,传进来的参数可以直接放进去,我记得原来写的时候,like里面有问号,传入字符串会出错,逻辑你想想稍微改一下,难度不大

这是防止thinkPHP框架里的I方法过滤不全而设置的。

以下是我对于bind的理解:

例如:

$bind[':name']="abc \' or 1 =1 '"//这是注入输入的信息;

$where['name']=": name";

$User=M('user')

$User->where($where)->bind($bind)->select()

mysql语句输出为 :select * from user where name="abc or 1 =1 '"

bind会用户传过来的特殊非法字符给再次过滤。

现在Tp框架里只要设置了

'DB_BIND_PARAM'=> true

引用TP例子

然后,我们在使用

$Model = M('User')

$Model->name = 'thinkphp'

$Model->email = 'thinkphp@qq.com'

$Model->add()

会自动对写入的数据进行参数绑定 *** 作。其 *** 作等效于:

$Model = M('User')

$Model->name = ':name'

$Model->email = ':email'

$bind[':name']= 'thinkphp'

$bind[':email'] = 'thinkphp@qq.com'

$Model->bind($bind)->add()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8708513.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存