質問: $sth->fetchAll(PDO::FETCH_ASSOC); echo $sql; if(count($result)>0){ echo "名前に「{$name}」が含まれているレコード"; // テーブルは省略 } else { echo "名前に「{$name}」は見つかりませんでした。"; } } catch (Exception $e) { echo 'エラーがありました。'; echo $e->getMessage(); } } ``` 原因は $sth -> execute(); となっているのはわかるのですが、 $sth -> execute($sql); としますと、(サンプルコードはexecute($sql)となっています) エラー表示 Warning: PDOStatement::execute() expects parameter 1 to be array, string given in となります。 参考にさせていただいたサンプルコードがあり、 それを自身の変数に変えるぐらいの知識しか無いため、 executeは引数に配列を期待しているがstringを渡しているための警告です。 という事がわかってもサンプルコードでは動いているはずなので、 どのPODをどのように変更してよいのかわかりません。 よろしくお願いします。
回答: > > if($area) $sth -> bindValue(':p_no', $p_no, PDO::PARAM_STR); > > > ``` if($p_no) $sth -> bindValue(':p_no', $p_no, PDO::PARAM_STR); ``` ですね > > } catch (Exception $e) { > > > ここはこうです ``` } catch(PDOException $e){ ```