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()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)