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.SQLite3::enableExceptions
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
SQLite3::enableExceptions
Референца за `sqlite3.enableexceptions.php` со подобрена типографија и навигација.
SQLite3::enableExceptions
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::enableExceptions — Enable throwing exceptions
= NULL
Controls whether the SQLite3 instance will throw exceptions or warnings on error.
Параметри
enable-
Кога
trueсимболот, на пр. SQLite3 instance, and SQLite3Stmt and SQLite3Result instances derived from it, will throw exceptions on error.Кога
falseсимболот, на пр. 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.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.3.0 |
Повикување 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