Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Fehlercodes und Meldungen der Datenbank

Wie Exponential Datenbankfehler meldet - die eigene Fehlernummer der Engine in errorNumber() und in eZDBException, die Codes für einen doppelten Schlüssel und eine fehlende Tabelle bei jedem Treiber, die…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/database-administrators/error-codes-and-messages.md

On this page

This page is a translation. Read the English original

Fehlercodes und Meldungen der Datenbank

Diese Seite richtet sich an Datenbankadministratoren und Entwickler, die die Datenbankfehler von Exponential lesen oder Code schreiben, der darauf reagieren muss. Sie beantwortet: welche Nummer eine gescheiterte Anweisung auf jeder Engine meldet, wie Fehler den Code erreichen und was die eigenen Meldungen der Treiber bedeuten. Quelle: Eine Website betreiben, kennen Sie Ihren Datenbanktreiber und die Treiber in lib/ezdb/classes/.

Inhalt

  1. Die eigene Nummer der Engine
  2. Zwei Arten der Fehlerbehandlung
  3. Exception-Klassen
  4. Meldungen und wo sie erscheinen
  5. Eine Fehlerreferenz lesen

Die eigene Nummer der Engine

Die Fehlernummer einer gescheiterten Anweisung ist die eigene der Datenbank, in $db->errorNumber() und, bei Exception-Behandlung, als getCode() der geworfenen eZDBException:

TreiberDoppelter SchlüsselFehlende Tabelle
MySQL, MariaDB10621146
PostgreSQL (der SQLSTATE, eine Zeichenkette)'23505''42P01'
SQLite (der Ergebniscode)191
Oracle (die ORA-Nummer)1942
MongoDB (nur errorNumber(); der Treiber antwortet mit false und wirft nichts)11000

Hinweis zum Upgrade: errorNumber() von PostgreSQL war früher für jeden Fehler 1 und ist jetzt der SQLSTATE.

Zwei Arten der Fehlerbehandlung

$db = eZDB::instance();
$db->setErrorHandling( eZDB::ERROR_HANDLING_EXCEPTIONS );
try
{
    $db->query( "INSERT INTO my_table ( id ) VALUES ( 1 )" );
}
catch ( eZDBException $e )
{
    if ( $e->getCode() === 1062 || $e->getCode() === '23505' )   // MySQL, PostgreSQL
        { /* the row is there already */ }
}
$db->setErrorHandling( eZDB::ERROR_HANDLING_STANDARD );
  • Standard (der Standard): Eine gescheiterte Anweisung wird protokolliert, und der Aufruf gibt false zurück; innerhalb einer Transaktion meldet der Kernel das Scheitern.
  • Exceptions: eZDBException mit dem Code der Engine. Damit wirft MySQL unter PHP 8.1 und neuer eZDBException statt PHPs mysqli_sql_exception.
  • Der SQLite-Treiber wirft innerhalb einer Transaktion; außerhalb antwortet er mit false und gesetztem errorNumber().

Vergleichen Sie Codes je Engine, nie den Text der Meldung, der sich nach Engine, Version und Sprache unterscheidet.

Exception-Klassen

KlasseWann
eZDBNoConnectionExceptiondie Verbindung ließ sich (nach ConnectRetries) nicht öffnen; der Einrichtungsassistent und index.php melden eine nicht erreichbare Datenbank. Auf SQLite enthält die Meldung den vollständigen Pfad der Datei
eZDBExceptioneine gescheiterte Anweisung bei eingeschalteter Exception-Behandlung

Meldungen und wo sie erscheinen

MeldungGeschrieben vonWoSeite
"Database implementation not supported: ..."eZDB::instance()var/log/error.logEinstellungen lesen und ändern
"No database handler was found for '...'"die Null-Datenbank eZNullDBdie Fehlerseitedieselbe
"SQLite3 extension was not found, the DB handler will not be initialized."eZSQLite3DBerror.logPHP-Erweiterungen
"database is busy: the transaction could not start within N s, another write held the lock all that time; nothing was written"eZSQLite3DBerror.log, die FehlerseiteSchreibwarteschlange
"the transaction could not start: ...; nothing was written"eZSQLite3DBdasselbedieselbe
"attempt to write a readonly database"SQLiteerror.logRechte
"Connection warning: could not set the connection charset to 'utf8'; it is '...'"eZMySQLiDBwarning.log mit AlwaysLog[]=warningutf8mb4
"The 'digest' function is not available in your database, and Exponential cannot run without it."der Einrichtungsassistentder AssistentPostgreSQL
"Failed to parse MongoDB URI: ... 'default' authentication mechanism requires a username"der MongoDB-Treibererror.logMongoDB
MONGO TODO arrayQuery: tables=[...] caller=...expMongoDBdie LogsGrenzen von MongoDB
"The database schema could not be read."die Upgrade-Prüfungdie SeiteDas Schema prüfen
"The audit index classes are not in the autoload array"createaudittables.phpdie ShellUpdate auf 6.0.15

Eine Fehlerreferenz lesen

Eine Fehlerseite zeigt eine kurze Referenz. exp:logs findet den Fehler anhand dieser Referenz und zeigt die Zeilen seiner Anfrage, mit standardmäßig maskierten personenbezogenen Daten (Einen Fehler anhand seiner Referenz finden).

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x