SQL---insert方法中使用foreach

如何在Mysql语句的insert语句中使用foreach方法,做循环插入?

这里有一个user的集合,users,将其遍历插入到数据库表user中,方法如下:

<insert id="addList" parameterType="com.java4all.User">
        INSERT  INTO  user(name,age,address)
        <foreach collection="users" item="user" index="index" separator="union all">
            select
            #{user.name},
            #{user.age},
            #{user.address}
            FROM dual
        </foreach>
</insert>
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
<?php class sqlsafe {   private $getfilter = "'|(and|or)\\b. ?(>|<|=|in|like)|\\/\\*. ?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION. ?SELECT|UPDATE. ?SET|INSERT\\s INTO. ?VALUES|(SELECT|DELETE). ?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s (TABLE|DATABASE)";   private $postfilter = "\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*. ?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION. ?SELECT|UPDATE. ?SET|INSERT\\s INTO. ?VALUES|(SELECT|DELETE). ?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s (TABLE|DATABASE)";   private $cookiefilter = "\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*. ?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION. ?SELECT|UPDATE. ?SET|INSERT\\s INTO. ?VALUES|(SELECT|DELETE). ?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s (TABLE|DATABASE)";   public function __construct() {     foreach($_GET as $key=>$value){$this->stopattack($key,$value,$this->getfilter);}     foreach($_POST as $key=>$value){$this->stopattack($key,$value,$this->postfilter);}     foreach($_COOKIE as $key=>$value){$this->stopattack($key,$value,$this->cookiefilter);}   }   public function stopattack($StrFiltKey, $StrFiltValue, $ArrFiltReq){     if(is_array($StrFiltValue))$StrFiltValue = implode($StrFiltValue);     if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue) == 1){       $this->writeslog($_SERVER["REMOTE_ADDR"]."    ".strftime("%Y-%m-%d %H:%M:%S")."    ".$_SERVER["PHP_SELF"]."    ".$_SERVER["REQUEST_METHOD"]."    ".$StrFiltKey."    ".$StrFiltValue);       showmsg('您提交的参数非法,系统已记录您的本次操作!','',0,1);     }   }   public function writeslog($log){     $log_path = CACHE_PATH.'logs'.DIRECTORY_SEPARATOR.'sql_log.txt';     $ts = fopen($log_path,"a ");     fputs($ts,$log."\r\n");     fclose($ts);   } }本类库首先构造函数参数,然后检查并写日志最后检查SQL注入日志。是一个很好用的防SQL注入的php类库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值