これがPDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
です。 です。次のように使用します:
$pdo = new PDO(
'mysql:host=localhost;port=3306;dbname=mydb;charset=utf8'
, 'user'
, 'pass'
, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]
);
このように使用すると、エラーは実際には例外としてスローされます。つまり、fetch(またはこのpdoオブジェクトを使用する他のメソッド)でエラーが発生した場合、例外がスローされ、メソッドは実際にはまったく返されません。これは、PDOのエラーを処理するための非常に効果的な方法です。これで、fetchが値を返した場合、エラーは発生しなかったため、falseの場合、クエリはレコードを返さなかったことがわかりました。