1

ページネーション付きの検索/フィルター フォームがあるため、URL のパラメーターを取得するには $_GET を実行する必要がありました。ここで、より安全にするために準備済みステートメントも使用したいと思いました。

問題は、空のフィールドを残すとエラーが発生することです。この問題を回避する方法はありますか? このウェブサイトを検索したところ、セミナーの問題が見つかりましたが、それらはすべてデータベースに空のフィールドを挿入することに関するものでした。

$input = $_GET['input'];

$categories = $_GET['category'];
$state = $_GET['state'];
$zipcode = $_GET['zipcode'];
$targetpage = "send.php";
$limit = 3;

//This query checks for data
  $qq = " SELECT * FROM classified where confirm='0' ";
    if (!empty($input)) {
        $qq .= "AND title LIKE :input ";
    }
    if (!empty($categories) ){
        $qq .= "AND id_cat = :categories ";
    }

    if (!empty($state) ) {
        $qq .= "AND id_state = :state ";
    }

            if (!empty($zipcode) ) {
        $qq .= "AND zipcode = :zipcode ";
    }


    $qq .= "ORDER BY date DESC ";
    $qq = $db->prepare($qq);
   $input = "%".$input."%";
    // Bind the parameter
$qq->execute(array(':input'=> $input,
 ':categories'=> $categories,
 ':state'=> $state,
 ':zipcode'=> $zipcode  ));

私が得ているエラーは

 PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined  
 in ....send.php on line 56

これは ':zipcode'=> $zipcode ));

4

2 に答える 2