ページネーション付きの検索/フィルター フォームがあるため、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 ));