回答編集履歴

1 引用ブロックをcodeブロックに修正

退会済みユーザー

退会済みユーザー

2018/12/05 01:29  投稿

PDOExceptionで例外をキャッチすることができます。
これでどういうときにfatch()が失敗したかがわかります。fetch()というよりもexecute()での失敗かもしれません。
>    try {
>        $dbh = new PDO(DSN, DB_USER, DB_PASSWORD,
>        array(
>            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
>            PDO::ATTR_EMULATE_PREPARES => false,
>        ));
>    } catch (PDOException $e) {
>        echo $e->getMessage();
>        exit;
>    }
```ここに言語を入力
 try {
       $dbh = new PDO(DSN, DB_USER, DB_PASSWORD,
       array(
           PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
           PDO::ATTR_EMULATE_PREPARES => false,
       ));
   } catch (PDOException $e) {
       echo $e->getMessage();
       exit;
   }
```
execute()がうまくいったかどうかは
```ここに言語を入力
rowCount()
```でも調べることができるようです
```ここに言語を入力
var_dump($stmt->rowCount());
exit;
```

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