回答編集履歴

1 コードにtry,catch()を追加

Tomak

Tomak score 1588

2018/01/14 18:52  投稿

PHPドキュメントにも書いてあるように`bindParam()`は`$stmt->execute()`を実行したときに変数が評価されますので、`bindValue()`を使います。
[http://php.net/manual/ja/pdostatement.bindparam.php](http://php.net/manual/ja/pdostatement.bindparam.php)
ご存知かもしれませんがSQL処理は`try, catch()`でくくるようにします。  
 
```php
//...
for($i=0; $searchWordNum > $i; $i++){
   $searchWord = '%'.$sqldb['words'][$i].'%';
   $stmt->bindValue(':search'.$i, $searchWord, PDO::PARAM_STR);
try {
   //...
   for($i=0; $searchWordNum > $i; $i++){
       $searchWord = '%'.$sqldb['words'][$i].'%';
       $stmt->bindValue(':search'.$i, $searchWord, PDO::PARAM_STR); //←ここ
   }
   $stmt->execute();
   $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
   //var_dump($result);
   //...
}
//...
catch (\PDOException $e) {
   echo $e->getMessage();
}
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る