新手请教模糊查询怎样防止sql注入

forget0915 2013-03-15 08:36:17
//创建表模型
$news_table=new news();
//创建相应的适配器
$db=$news_table->getAdapter();
//准备好sql语句
$sql=$db->quoteInto("select title,pubDate from news where title like '%$keyword_arr[0]%'");
//获取结果集
$res=$db->query($sql)->fetchAll();
我需要模糊查询,有意要带%号,而且里面还有变量名$号,数组的下标运算符[]号,但又要防止别人用%之类的这些东西来Sql注入,这句话该怎么写啊??
...全文
626 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-03-17
  • 打赏
  • 举报
回复
$db->quoteInto("select title,pubDate from news where title like '%$keyword_arr[0]%'"); 方法 quoteInto 需要有两个参数 to #7 后者已列入过时系列
zmzkkk 2013-03-17
  • 打赏
  • 举报
回复
mysql_real_escape_string 和 mysql_escape_string 有什么分别??
tangfengme01 2013-03-17
  • 打赏
  • 举报
回复
我也想知道,应该是要对参数进行过滤,发现要过滤的字符,就强制退出或者替换掉。
happypiggy2010 2013-03-16
  • 打赏
  • 举报
回复
%怎么实现这个注入的?
一起混吧 2013-03-15
  • 打赏
  • 举报
回复
1、Abstract.php 927 行的 end_Db_Adapter_Abstract::quoteInto() 函数丢失了参数2,即你少传了一个参数 2、PHP Notice: Undefined variable: value $value 没有定义,在 Abstract.php 930 行
forget0915 2013-03-15
  • 打赏
  • 举报
回复
这句sql能查询出结果,但是在我的错误日志文件里记录了1个错误和1个警告 PHP Warning: Missing argument 2 for Zend_Db_Adapter_Abstract::quoteInto(), called in E:\myenv\Apache\htdocs\news\application\controllers\NewsqueryController.php on line 44 and defined in E:\myenv\Apache\htdocs\news\library\Zend\Db\Adapter\Abstract.php on line 927 PHP Notice: Undefined variable: value in E:\myenv\Apache\htdocs\news\library\Zend\Db\Adapter\Abstract.php on line 930 不晓得哪里有问题
forget0915 2013-03-15
  • 打赏
  • 举报
回复
这句Sql可以帮忙写出来给我试下不 我是菜鸟啊
  • 打赏
  • 举报
回复
加一个 mysql_real_escape_string(); 不过mysql_real_escape_string不转义 % 和 _ 所以可以先 str_replace(),去掉不想要的符号。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧