SQLite3::enableExceptions
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::enableExceptions — Enable throwing exceptions
说明
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.
更新日志
版本 | 说明 |
---|---|
8.3.0 |
Calling SQLite3::enableExceptions() with enable
as false will trigger a E_DEPRECATED warning.
|
示例
示例 #1 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
用户贡献的备注 1 note
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.
备份地址:http://www.lvesu.com/blog/php/sqlite3.enableexceptions.php