PHPのPDOStatement::executeが失敗したとき、Falseを返すのかExceptionを投げるのか
PDO::ERRMODE_EXCEPTION
のとき、
try {
$stmt = $pdo->prepare("SELECT * FROM po");
$result= $stmt->execute();
if (!$result) {
throw new Exception ("execute_false");
}
} catch (Exception $e) {
var_dump($e->getMessage());
}
とすると、
Base table or view not found: 1146 Table 'hoge_table.po' doesn't exist
となり、execute()
がfalse
ではなく例外を投げているような気がします。
しかし、ドキュメントを見ても、executeが例外を出すという記述はありません。たとえばprepareのところには例外を吐くと書かれています。
これについて、execute
が例外を出したのではなく、prepare
の例外が
execute
の実行により起こり、execute
が例外を出したように見える、という解釈で正しいのでしょうか?
また、execute
自身がfalse
を返す失敗とはどのようなものなのでしょうか。
よろしくお願いします。