преобразовать в тип bind_param - PullRequest
       4

преобразовать в тип bind_param

0 голосов
/ 16 октября 2011

Я все еще новичок в php bind_param и мне интересно, как преобразовать эту (поисковую) часть скрипта, чтобы избежать внедрения SQL? И я все еще застрял (на самом деле не знаю, что с этим делать:

 $rest.="where name like '%".$name."%'";
 $rest.="where country='".$country."' 
 $rest.="where ip = '".$ip."'   

/////////////////////////////////////////////// /////////////////////////////

  $name = $_POST['name'];  
  $country = $_POST['country']; 
  $ip = $_POST['ip']; 
  $o="AND";
  $rest="";
  $text="Search Keywords : ";                    
                     if($name!="")
                     {
                        if($rest=="")
                            {
                         $rest.="where name like '%".$name."%'";
                         $text.="Name like ".$name." ";
                         }
                         else {
                         $rest.="$o name like '%".$name."%'";
                         $text.="Name like ".$name." ";
                         }
                     }           
                     if($country!="")
                     {
                        if($rest=="")
                            {
                            $rest.="where country='".$country."' ";
                            $text.="Country = ".$country."";
                            }
                            else
                            {
                            $rest.=" $o country='".$country."' ";
                            $text.=", Country = ".$country."";
                            }
                     }                           
                      if($ip!="")
                     {
                        if($rest=="")
                            {
                                $rest.="where ip = '".$ip."' ";
                                $text.="Ip Address = ".$ip." ";
                            }
                            else
                            {
                            $rest.=" $o  ip = '".$ip."' ";
                            $text.=", Ip Address = ".$ip." ";
                            }
                     }
                    if($rest!="")
                    {
                    $rest=$rest;
                    }
                    else
                    {

                    } 
$stmt = $mysqli->prepare("select $search.* from $search $rest order by id"); 
$stmt->execute(); 
$stmt->store_result();
$num = $stmt->num_rows;

1 Ответ

0 голосов
/ 16 октября 2011

вы не должны объединять строки для построения запроса. Заменить вопросительными знаками:

where country='".$country."' 

должно быть:

where country=?

, а затем используйте bind_param с порядковым номером (номером параметра вопроса) и связанным значением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...