SQLite3::enableExceptions

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

SQLite3::enableExceptions Active le lancement d'exceptions

Description

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

Contrôle si l'instance SQLite3 lancera des exceptions ou des avertissements lors d'une erreur.

Liste de paramètres

enable

Si true, l'instance SQLite3, et les instances dérivées de SQLite3Stmt et SQLite3Result, lanceront des exceptions en cas d'erreurs.

Si false, l'instance SQLite3, et les instances dérivées de SQLite3Stmt et SQLite3Result, lanceront des avertissements en cas d'erreurs.

Pour chacun des modes, le code et message d'erreur, s'il y a, seront disponible grâce à SQLite3::lastErrorCode() et SQLite3::lastErrorMsg() respectivement.

Valeurs de retour

Retourne l'ancienne valeur ; true si les exceptions étaient activées, false sinon.

Exemples

Exemple #1 Exemple avec 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();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

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

User Contributed Notes 1 note

up
10
Yoann
6 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.
To Top