TS: mysql/php: Fehlernummer abfragen

Beitrag lesen

Hello,

ich trage in einer Schleife Daten in eine Tabelle ein.
Damit alle Daten nur genau 1x drin stehen, habe ich einen kombinierten Index gesetzt, der unique sein muss.

Und damit mir das Script dann nicht abbricht, sondern schlicht nicht einträgt und alle Schleifendurchläufe durch geht, habe ich das bisher (php 7.4) so abgefangen:

while {
...            
$result = mysqli_query($con,$query);
            if($result == FALSE && mysqli_errno($con) != 1062) {
                echo $con->errno;
                error_log_datei($query);
            }
        }

Alternativ lass die Zeilen einzeln per Stored Routine und Trigger eintragen. Der Trigger kann dann entweder eine Exception schmeißen oder eine Aktion ausführen. Das mit der Exception muss man eventuell auch "durch die Brust ins Auge" realisieren.

Ich habe keinen Überblick, ob das Manquo da schon abgebaut wurde. Aber zumindest gibt es da einen Weg.

Man sollte ohnehin eine Zusatzschicht mittels Stored Routines einfügen, um die komplette Kontrolle über die Geschäftsregeln in der Datenbank halten zu können. Der Direktzugriff auf die Tabellen wird dann gesperrt. Zugriffe finden nur noch über die Zwischenschicht statt.

Da kann man dann sauber regeln, welcher User was darf.

Glück Auf
Tom vom Berg

--
Es gibt soviel Sonne, nutzen wir sie.
www.Solar-Harz.de
S☼nnige Grüße aus dem Oberharz