PDA

View Full Version : آیا این تابع برای sql injectionخوبه



hamidrezawd
دوشنبه 14 اسفند 1396, 21:32 عصر
سلام و عرض ادب و احترام
حال شما
خوب هستین
به این کد من یه نگاه بندازین .
این کد عمل Insert رو با pdo انجام میده .
من خونده بودم که اگه از pdo استفاده کنم . جلوی حملات sql injection گرفته میشه .
آیا من تو کد زیر تونستم این کار رو به خوبی انجام بدم ؟
به نظرتون کدم مشکلی داره ؟



public function insert($table,$data){ $this->setAttribute(pdo::ATTR_EMULATE_PREPARES,false); ksort($data); $keyfild='`'.implode('`,`',array_keys($data)).'`'; $valfild=':'.implode(',:',array_keys($data)); $res=$this->prepare("INSERT INTO `$table` ($keyfild) VALUES ($valfild)"); foreach($data as $key=>$val){ $res->bindValue(":$key",$val); } $rr=$res->execute(); if($rr){ session::set('insert',true_matn); }else{ session::set('insert',false_matn); }}

hamidrezawd
دوشنبه 14 اسفند 1396, 21:33 عصر
public function insert($table,$data){
$this->setAttribute(pdo::ATTR_EMULATE_PREPARES,false);
ksort($data);
$keyfild='`'.implode('`,`',array_keys($data)).'`';
$valfild=':'.implode(',:',array_keys($data));
$res=$this->prepare("INSERT INTO `$table` ($keyfild) VALUES ($valfild)");

foreach($data as $key=>$val){
$res->bindValue(":$key",$val);
}
$rr=$res->execute();
if($rr){
session::set('insert',true_matn);
}else{
session::set('insert',false_matn);
}
}