2016-11-02 17 views
1

私のウェブサイトにダイナミックデータを表示するのにajaxを使用しています!以前にそれが今、私は準備された文を追加することによって、自分のWebサイトのセキュリティを向上していますシンプルなmysqliのクエリを使用して行われた、私は1つが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++; 
     } 
    } 

だと、ここで準備された文がありますされて2つのクエリを持っていますクエリ

$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の中で書かれたクエリが正常に動作しているが、私は準備された文の中で同じクエリを使用していたときに、それがnull私に戻っています!何か案が?

+2

あなたはのparamsをバインドしました_after_実行する必要があります... –

+0

今日、私は天使を見ました!感謝@JonStirling – uneeb

+0

私はそれをマークすることができるように別のコメントであなたの答えを書くことができますか? – uneeb

答えて

1

Executeメソッドは、コメントをバインドした後に呼び出されます。

コードの下に試してみてください。

$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

関連する問題