Seems not clear but flags *could be combined*, as per other flags.
For example:
<?php
# wannabe noticed about all errors except those about indexes
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL & ~MYSQLI_REPORT_INDEX;
?>
(PHP 5, PHP 7, PHP 8)
mysqli_driver::$report_mode -- mysqli_report — Legt den Modus für die mysqli-Fehlermeldungen fest
Objektorientierter Stil
Prozeduraler Stil
In Abhängigkeit von den Flags wird der Modus für mysqli-Fehlermeldungen auf
Exception, Warning oder None gesetzt. Wenn der Parameter auf
MYSQLI_REPORT_ALL
oder
MYSQLI_REPORT_INDEX
gesetzt ist, informiert er auch
über Abfragen, die keinen (oder einen fehlerhaften) Index verwenden.
Seit PHP 8.1.0 ist der Standardwert MYSQLI_REPORT_ERROR |
MYSQLI_REPORT_STRICT
; vorher war es
MYSQLI_REPORT_OFF
.
flags
Name | Beschreibung |
---|---|
MYSQLI_REPORT_OFF |
Deaktiviert die Meldung von Fehlern |
MYSQLI_REPORT_ERROR |
Fehler von mysqli-Funktionsaufrufen melden |
MYSQLI_REPORT_STRICT |
Bei einem Fehler eine mysqli_sql_exception statt einer Warnung auslösen |
MYSQLI_REPORT_INDEX |
Fehlende oder fehlerhafte Indizes in einer Abfrage melden |
MYSQLI_REPORT_ALL |
Alle Optionen aktivieren (alles melden) |
Returns true
.
Version | Beschreibung |
---|---|
8.1.0 |
Der Standardwert ist nun MYSQLI_REPORT_ERROR |
MYSQLI_REPORT_STRICT ; vorher war es
MYSQLI_REPORT_OFF .
|
Beispiel #1 Objektorientierter Stil
<?php
/* Fehlermeldungen aktivieren */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;
try {
/* wenn die Verbindung fehlschlägt, wird eine mysqli_sql_exception ausgelöst */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
/* diese Abfrage sollte einen Fehler melden */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* Wenn die Spalte population keinen Index hat, sollte diese Abfrage einen fehlerhaften Index melden */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}
Beispiel #2 Prozeduraler Stil
<?php
/* Fehlermeldungen aktivieren */
mysqli_report(MYSQLI_REPORT_ALL);
try {
/* wenn die Verbindung fehlschlägt, wird eine mysqli_sql_exception ausgelöst */
$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");
/* diese Abfrage sollte einen Fehler melden */
$result = mysqli_query($link, "SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* Wenn die Spalte population keinen Index hat, sollte diese Abfrage einen fehlerhaften Index melden */
$result = mysqli_query($link, "SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}
Beispiel #3 Nur Fehler melden, die sich nicht auf den Index beziehen
<?php
/* Fehlermeldungen aktivieren */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
/* wenn die Verbindung fehlschlägt, wird eine mysqli_sql_exception ausgelöst */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
/* diese Abfrage sollte einen Fehler melden */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* diese Abfrage meldet KEINEN Fehler, auch wenn kein Index vorhanden ist */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}
Seems not clear but flags *could be combined*, as per other flags.
For example:
<?php
# wannabe noticed about all errors except those about indexes
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL & ~MYSQLI_REPORT_INDEX;
?>
As a recommendaton on memory management please don't use the objective way your creating an object to specify one property and thats all your doing with it, much more effective both for the parser and for memory to use the proccedual style for setting the report flag.