略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: SQLite3::enableExceptions

2024-11-12

SQLite3::enableExceptions

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::enableExceptions Enable throwing exceptions

说明

public SQLite3::enableExceptions(bool $enable = 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.

范例

示例 #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
add a noteadd a note

User Contributed Notes 1 note

up
4
Yoann
3 years ago
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.

官方地址:https://www.php.net/manual/en/sqlite3.enableexceptions.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3