SQLite3::enableExceptions

例外のスローを有効にする

説明

public bool SQLite3::enableExceptions(bool $enable = false)

SQLite3 が、エラー時に警告や例外をスローするかどうかを制御します。

パラメータ

enable

true の場合、 SQLite3 のインスタンスと、 SQLite3Stmt および SQLite3Result から派生したインスタンスは、エラー時に例外をスローします

false の場合、 SQLite3 のインスタンスと、 SQLite3Stmt および SQLite3Result から派生したインスタンスは、エラー時に警告を発生させます。

どちらのモードであっても、エラーコードやメッセージがもしあれば、 SQLite3::lastErrorCodeSQLite3::lastErrorMsg で利用できます。

戻り値

古い値を返します。つまり、例外が有効であったなら true そうでなければ false を返します。

変更履歴

バージョン 説明
8.3.0 enablefalse にして SQLite3::enableExceptions をコールすると、E_DEPRECATED が発生するようになりました。

例1 SQLite3::enableExceptions の例

<?php
$sqlite = new SQLite3(':memory:');
try {
    $sqlite->exec('create table foo');
    $sqlite->enableExceptions(true);
    $sqlite->exec('create table bar');
} catch (Exception $e) {
    echo 'Caught exception: ' . $e->getMessage();
}
?>

上の例の出力は、 たとえば以下のようになります。

Warning: SQLite3::exec(): near "foo": syntax error in example.php on line 4
Caught exception: near "bar": syntax error