Aktueller Standort: Startseite> Neueste Artikel> Wie kombiniert ich MySQLI :: $ ERROR, um die Fehlereingabeaufforderung in mehrsprachigen Umgebungen zu implementieren?

Wie kombiniert ich MySQLI :: $ ERROR, um die Fehlereingabeaufforderung in mehrsprachigen Umgebungen zu implementieren?

M66 2025-07-18

Was ist MySQLI :: $ ERROR?

In PHP wird die MySQLI -Erweiterung verwendet, um mit einer MySQL -Datenbank zu interagieren. Bei der Ausführung einer Datenbankabfrage enthält das MySQLi :: $ -Fehler -Attribut die von der aktuell verbundene MySQL -Datenbank zurückgegebene Fehlermeldung. Wenn die Abfrage fehlschlägt, speichert MySQLI :: $ ERROR die von MySQL zurückgegebenen Fehlerinformationen, und Entwickler können diese Eigenschaft verwenden, um die Fehlerbehandlung und -Debuggierung durchzuführen.

In mehrsprachigen Anwendungen ist die direkte Verwendung von MySQL -Fehlermeldungen für die Anzeige nicht für Benutzer geeignet, da sie normalerweise in englischer oder technischer Beschreibung sind und für normale Benutzer nicht gelesen werden können. Daher müssen wir MySQLI :: $ -Fehler kombinieren, um Fehleranforderungen zu erstellen, die mehrsprachige Stütze unterstützen.

So implementieren Sie mehrsprachige Fehleraufforderungen

Der Kern der Implementierung der mehrsprachigen Fehlereingabeaufforderung liegt darin, Fehlerinformationen über die Spracheinstellungen des Benutzers dynamisch auszuwählen. Hier sind einige wichtige Schritte:

1. Erhalten Sie die Benutzersprache

Zunächst müssen Sie die Spracheinstellungen des Benutzers erhalten. Normalerweise werden die Einstellungen für die Benutzersprache in einer Sitzung gespeichert oder über den Akzept- Anforderungs-Header des Browsers erhalten. Der Einfachheit halber gehen wir davon aus, dass die Sprache bereits in $ _Session ['Lang'] gespeichert ist.

 <span><span><span class="hljs-comment">// Holen Sie sich die aktuelle Sprache,Standard ist Englisch</span></span><span>
</span><span><span class="hljs-variable">$lang</span></span><span> = </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'lang'</span></span><span>]) ? </span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'lang'</span></span><span>] : </span><span><span class="hljs-string">'en'</span></span><span>;
</span></span>

2. Definieren Sie den Fehler mit der Fehlermeldung

Wir können den Fehleraufforderungstext in einem mehrdimensionalen Array definieren, wobei jede Sprache einem Subaarrray entspricht. Auf diese Weise finden Sie alle Fehlermeldungen im Array.

 <span><span><span class="hljs-variable">$errorMessages</span></span><span> = [
    </span><span><span class="hljs-string">'en'</span></span><span> =&gt; [
        </span><span><span class="hljs-string">'invalid_query'</span></span><span> =&gt; </span><span><span class="hljs-string">'There was an error with the SQL query.'</span></span><span>,
        </span><span><span class="hljs-string">'connection_failed'</span></span><span> =&gt; </span><span><span class="hljs-string">'Failed to connect to the database.'</span></span><span>,
        </span><span><span class="hljs-string">'unknown_error'</span></span><span> =&gt; </span><span><span class="hljs-string">'An unknown error occurred.'</span></span><span>,
    ],
    </span><span><span class="hljs-string">'zh'</span></span><span> =&gt; [
        </span><span><span class="hljs-string">'invalid_query'</span></span><span> =&gt; </span><span><span class="hljs-string">'SQL In der Abfrage trat ein Fehler auf。'</span></span><span>,
        </span><span><span class="hljs-string">'connection_failed'</span></span><span> =&gt; </span><span><span class="hljs-string">'Die Datenbankverbindung ist fehlgeschlagen。'</span></span><span>,
        </span><span><span class="hljs-string">'unknown_error'</span></span><span> =&gt; </span><span><span class="hljs-string">'Ein unbekannter Fehler trat auf。'</span></span><span>,
    ],
    </span><span><span class="hljs-comment">// Sie können weiterhin andere Sprachen hinzufügen</span></span><span>
];
</span></span>

3.. Benutzerdefinierte Fehlerbehandlungsfunktionen

Als nächstes können wir eine benutzerdefinierte Fehlerbehandlungsfunktion erstellen, in der geeignete Eingabeaufforderungen basierend auf der aktuellen Sprache und der MySQL -Fehlermeldung angezeigt werden.

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">getErrorMessage</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$error</span></span></span><span>, </span><span><span class="hljs-variable">$lang</span></span><span> = </span><span><span class="hljs-string">'en'</span></span><span>) {
    </span><span><span class="hljs-keyword">global</span></span><span> </span><span><span class="hljs-variable">$errorMessages</span></span><span>;

    </span><span><span class="hljs-comment">// Fehlermeldung zur Auswahl der Sprache</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$errorMessages</span></span><span>[</span><span><span class="hljs-variable">$lang</span></span><span>]) &amp;&amp; </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$errorMessages</span></span><span>[</span><span><span class="hljs-variable">$lang</span></span><span>][</span><span><span class="hljs-variable">$error</span></span><span>])) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$errorMessages</span></span><span>[</span><span><span class="hljs-variable">$lang</span></span><span>][</span><span><span class="hljs-variable">$error</span></span><span>];
    }

    </span><span><span class="hljs-comment">// Wenn keine entsprechende Fehlermeldung gefunden wird,Gibt die Standard -englische Fehlermeldung zurück</span></span><span>
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$errorMessages</span></span><span>[</span><span><span class="hljs-string">'en'</span></span><span>][</span><span><span class="hljs-variable">$error</span></span><span>] ?? </span><span><span class="hljs-string">'An error occurred.'</span></span><span>;
}
</span></span>

V.

Als nächstes können Sie in der Datenbankoperation die Fehlerinformationen der Datenbank über MySQLI :: $ ERROR abrufen und sie dann mit einer benutzerdefinierten Fehlerbehandlungsfunktion kombinieren, um eine Multisprachel-Fehlereingabeaufforderung zurückzugeben.

 <span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">'localhost'</span></span><span>, </span><span><span class="hljs-string">'user'</span></span><span>, </span><span><span class="hljs-string">'password'</span></span><span>, </span><span><span class="hljs-string">'database'</span></span><span>);

</span><span><span class="hljs-comment">// Überprüfen Sie, ob die Verbindung erfolgreich ist</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">getErrorMessage</span></span><span>(</span><span><span class="hljs-string">'connection_failed'</span></span><span>, </span><span><span class="hljs-variable">$lang</span></span><span>);
    </span><span><span class="hljs-keyword">exit</span></span><span>();
}

</span><span><span class="hljs-comment">// Ausführen a SQL Abfrage</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">'SELECT * FROM non_existent_table'</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$result</span></span><span>) {
    </span><span><span class="hljs-comment">// Erhalten mysqli Fehlermeldung</span></span><span>
    </span><span><span class="hljs-variable">$mysqlError</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;error;
    
    </span><span><span class="hljs-comment">// 根据Fehlermeldung决定错误类型</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$mysqlError</span></span><span>, </span><span><span class="hljs-string">'unknown column'</span></span><span>) !== </span><span><span class="hljs-literal">false</span></span><span>) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">getErrorMessage</span></span><span>(</span><span><span class="hljs-string">'invalid_query'</span></span><span>, </span><span><span class="hljs-variable">$lang</span></span><span>);
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">getErrorMessage</span></span><span>(</span><span><span class="hljs-string">'unknown_error'</span></span><span>, </span><span><span class="hljs-variable">$lang</span></span><span>);
    }
}

</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span></span>

5. Weitere Optimierung

Um den Code weiter zu optimieren, können wir Fehlerinformationen in Sprachdateien speichern, um alle Informationen in PHP-Dateien zu vermeiden. Jede Sprache entspricht einer PHP -Datei mit dem folgenden Inhalt:

en.php :

 <span><span><span class="hljs-keyword">return</span></span><span> [
    </span><span><span class="hljs-string">'invalid_query'</span></span><span> =&gt; </span><span><span class="hljs-string">'There was an error with the SQL query.'</span></span><span>,
    </span><span><span class="hljs-string">'connection_failed'</span></span><span> =&gt; </span><span><span class="hljs-string">'Failed to connect to the database.'</span></span><span>,
    </span><span><span class="hljs-string">'unknown_error'</span></span><span> =&gt; </span><span><span class="hljs-string">'An unknown error occurred.'</span></span><span>,
];
</span></span>

zh.php :

 <span><span><span class="hljs-keyword">return</span></span><span> [
    </span><span><span class="hljs-string">'invalid_query'</span></span><span> =&gt; </span><span><span class="hljs-string">'SQL In der Abfrage trat ein Fehler auf。'</span></span><span>,
    </span><span><span class="hljs-string">'connection_failed'</span></span><span> =&gt; </span><span><span class="hljs-string">'Die Datenbankverbindung ist fehlgeschlagen。'</span></span><span>,
    </span><span><span class="hljs-string">'unknown_error'</span></span><span> =&gt; </span><span><span class="hljs-string">'Ein unbekannter Fehler trat auf。'</span></span><span>,
];
</span></span>

Laden Sie die entsprechende Sprachdatei dynamisch in den Code:

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">loadErrorMessages</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$lang</span></span></span><span>) {
    </span><span><span class="hljs-variable">$filePath</span></span><span> = </span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">"/lang/<span class="hljs-subst">{$lang}</span></span></span><span>.php";
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>)) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-keyword">include</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>);
    }

    </span><span><span class="hljs-comment">// Wenn die Sprachdatei nicht vorhanden ist,Laden Sie die englische Datei</span></span><span>
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-keyword">include</span></span><span>(</span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">'/lang/en.php'</span></span><span>);
}

</span><span><span class="hljs-variable">$errorMessages</span></span><span> = </span><span><span class="hljs-title function_ invoke__">loadErrorMessages</span></span><span>(</span><span><span class="hljs-variable">$lang</span></span><span>);
</span></span>

Auf diese Weise müssen Sie jedes Mal, wenn eine Fehlermeldung erforderlich ist, die entsprechenden Eingabeaufforderungsinformationen nur aus der Sprachdatei laden.

Zusammenfassen

Durch die Kombination von MySQLI :: $ ERROR und einem benutzerdefinierten mehrsprachigen Fehlereinlaufsystem können wir Benutzern in verschiedenen Orten freundlichere Fehlereingabeinformationen zur Verfügung stellen. Bei mehrsprachiger Entwicklung kann die Verwendung dieser Methode vermeiden, die Fehlerinformationen der Datenbank direkt auszusetzen und die Benutzererfahrung zu verbessern.