失礼します。
mysqlとphpを使ったOR検索のプログラムを作っています。
複数ワードで検索をした時に、
lang
1SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
という例外がスローされました。
調べてみたところ、プレースホルダとパラメータの数が合っていない?という意味なのかと思ったのですがコードを見なおしても自分では理解できませんでした。
以下がコードです。(一部を抜粋)
lang
1//OR検索時 2 elseif($count > 1){ 3 $stmt = $pdo->prepare($query); 4 for($i=0; $i<$count; $i++){ //検索ワードの数だけ繰り返す 5 $keyword2[$i] = "'%".$keyword[$i]."%'"; //検索ワード1つ1つを%検索文字%にする 6 $holder = ':keyword'.$i; //ホルダー用 7 $stmt->bindParam(':holder',$keyword2[$i],PDO::PARAM_STR); 8 } 9 $stmt->execute(); 10 $result = $stmt->fetchAll(PDO::FETCH_ASSOC); 11 }
どう直したらよいのでしょうか?
全コードが必要でしたら書き直します。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。