2016-11-02 5 views
1

Я использую ajax для отображения динамических данных на моем сайте! Ранее это было сделано с помощью простых запросов Mysqli теперь я повышение безопасности моего веб-сайта, добавив подготовленные заявления, у меня есть два запроса один написано в MySQLi и других в подготовленных заявлений вот Mysqli-запросвыполнение запроса с подготовленными инструкциями не работает

$sql = "SELECT DISTINCT model_trim FROM `tbl_02_models` WHERE model_year='$year' and model_name='$model' and model_make_id='$make' "; 
    $run = mysqli_query($db, $sql); 
    while ($row = mysqli_fetch_array($run)) { 
     if($row['model_trim']){ 
     $data2[$i]['model_trim']=$row['model_trim']; 
     $i++; 
     } 
    } 

и вот подготовленное заявление запрос

$query="SELECT DISTINCT model_trim FROM `tbl_02_models` WHERE model_year=? and model_name=? and model_make_id=?"; 
       $stmt = $db->prepare($query); 
       if($stmt){ 

        $stmt->execute(); 
        $stmt->bind_param("iss",$year,$model,$make); 
        $stmt->bind_result($model_trim); 
        while ($stmt->fetch()) 
        { 
         if($model_trim) 
         { 
         $data2[$i]['model_trim']=$model_trim; 
         $i++; 
         } 

        } 
         $stmt->close();     
        } 

запрос написан простым MySQLi работает нормально, но когда я использую один и тот же запрос в подготовленных заявлений она возвращается меня пустой! Есть идеи?

+2

Вам нужно выполнить _после_ вы связали Params ... –

+0

Сегодня я увидел ангел! спасибо @JonStirling – uneeb

+0

вы можете написать свой ответ в отдельном комментарии, чтобы я мог его пометить? – uneeb

ответ

1

Вызов метода вызывается после связывания комментариев.

Try ниже кода:

$query="SELECT DISTINCT model_trim FROM `tbl_02_models` WHERE model_year=? and model_name=? and model_make_id=?"; 
       $stmt = $db->prepare($query); 
       if($stmt){ 

        $stmt->bind_param("iss",$year,$model,$make); 
        $stmt->bind_result($model_trim); 
        $stmt->execute(); 
        while ($stmt->fetch()) 
        { 
         if($model_trim) 
         { 
         $data2[$i]['model_trim']=$model_trim; 
         $i++; 
         } 

        } 

         $stmt->close();     
        } 

Для получения дополнительной справки по этой ссылке - http://www.w3schools.com/php/php_mysql_prepared_statements.asp

Смежные вопросы