SQLite3::enableExceptions()
(PHP 5 >= 5.3.0, PHP 7)
Enable throwing exceptions
说明
SQLite3::enableExceptions([bool $enableExceptions= FALSE
]): bool
Controls whether the SQLite3 instance will throw exceptions or warnings on error.
参数
- $enable
When
TRUE
, the SQLite3 instance, and SQLite3Stmt and SQLite3Result instances derived from it, will throw exceptions on error.When
FALSE
, the SQLite3 instance, and SQLite3Stmt and SQLite3Result instances derived from it, will raise warnings on error.For either mode, the error code and message, if any, will be available via SQLite3::lastErrorCode() and SQLite3::lastErrorMsg() respectively.
返回值
Returns the old value;TRUE
if exceptions were enabled,FALSE
otherwise.
范例
SQLite3::enableExceptions() example
<?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
Be sure to note the poorly chosen name and default value. The following snippet does not throw an exception, despite calling a function with the name "enableExceptions" immediately prior to the bad query. <?php $sqlite = new SQLite3('test.tmp'); $sqlite->enableExceptions(); $sqlite->exec('invalid query'); echo 'code still running since no exception was thrown'; ?> Note that this is still error-prone if the passed value is false. One is likely to read "enableExceptions" and ignore the parameter list since the function name conveys a strong (but incorrect) meaning.