Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich in MySQL den Fehler „Schwerwiegender Fehler: Nicht erfasste Ausnahme ‚mysqli_sql_Exception' mit der Meldung ‚Kein Index in Abfrage/vorbereiteter Anweisung verwendet''?

Warum erhalte ich in MySQL den Fehler „Schwerwiegender Fehler: Nicht erfasste Ausnahme ‚mysqli_sql_Exception' mit der Meldung ‚Kein Index in Abfrage/vorbereiteter Anweisung verwendet''?

Patricia Arquette
Freigeben: 2025-01-01 12:04:11
Original
756 Leute haben es durchsucht

Why Am I Getting the

"Schwerwiegender Fehler: Nicht abgefangene Ausnahme 'mysqli_sql_Exception' mit Meldung 'Kein Index in Abfrage/vorbereiteter Anweisung verwendet'" Erklärt

Einführung

Beim Ausführen von Datenbankabfragen kann der Fehler „Schwerwiegender Fehler: Nicht erfasste Ausnahme“ auftreten „mysqli_sql_Exception“ mit der Meldung „Kein Index in Abfrage/vorbereiteter Anweisung verwendet“. Ziel dieses Artikels ist es, die zugrunde liegenden Ursachen aufzuklären und Lösungen für diesen Fehler bereitzustellen.

PHP-Codebewertung

$mysql = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('There was a problem connecting to the database');
if (mysqli_connect_errno()) {
    printf("DB error: %s", mysqli_connect_error());
    exit();
}

$get_emp_list = $mysql->prepare("SELECT id, name FROM calc");
if(!$get_emp_list){
    echo "prepare failed\n";
    echo "error: ", $mysql->error, "\n";
    return;
}
$get_emp_list->execute();
$get_emp_list->bind_result($id, $emp_list);
Nach dem Login kopieren

Fehleranalyse

Die Fehlermeldung weist darauf hin, dass in der Abfrage oder vorbereiteten Anweisung ein Index fehlt. In diesem Fall hat die MySQL-Tabelle „calc“ keinen Index für die Spalten „id“ und „name“.

Lösungen

Mysqli_report anpassen Einstellung

Die Funktion mysqli_report() kann verwendet werden, um den Schweregrad der von gemeldeten Warnungen und Fehler zu steuern MySQL. Durch Festlegen von mysqli_report(MYSQLI_REPORT_OFF) oder mysqli_report(MYSQLI_REPORT_ERROR) können Sie Warnungen deaktivieren und nur Fehler melden, wodurch der schwerwiegende Fehler in diesem Fall vermieden wird.

mysqli_report(MYSQLI_REPORT_OFF);
Nach dem Login kopieren

Fehlerbehandlung implementieren

Eine andere Lösung besteht darin, die Fehlerbehandlung mit try{} und Catch() zu implementieren. Blöcke. Dadurch können Sie Fehler und Warnungen erkennen und behandeln, die während Datenbankvorgängen auftreten.

try {
    $get_emp_list = $mysql->prepare("SELECT id, name FROM calc");
    if(!$get_emp_list){
        throw new Exception("Prepare failed");
    }
    $get_emp_list->execute();
    $get_emp_list->bind_result($id, $emp_list);
} catch (Exception $e) {
    echo "Error occurred: " . $e->getMessage() . "\n";
}
Nach dem Login kopieren

Indizes für die Tabelle erstellen

Um das zugrunde liegende Indexproblem zu beheben, sollten Sie Folgendes tun Erstellen Sie Indizes für die Tabelle, um die Abfrageleistung zu optimieren.

CREATE INDEX idx_emp_id ON calc (id);
CREATE INDEX idx_emp_name ON calc (name);
Nach dem Login kopieren

Durch die Implementierung dieser Lösungen können Sie den „Schwerwiegenden Fehler: Nicht erfasste Ausnahme“ beheben „mysqli_sql_Exception“ mit der Meldung „Kein Index in Abfrage/vorbereiteter Anweisung verwendet““-Fehler und verbessern Sie die Leistung Ihrer Datenbankoperationen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in MySQL den Fehler „Schwerwiegender Fehler: Nicht erfasste Ausnahme ‚mysqli_sql_Exception' mit der Meldung ‚Kein Index in Abfrage/vorbereiteter Anweisung verwendet''?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage