sql >> Database teknologi >  >> RDS >> Mysql

Kan jeg registrere og håndtere MySQL-advarsler med PHP?

For at advarsler skal "flagges" til PHP indbygget, ville det kræve ændringer af mysql/mysqli-driveren, hvilket naturligvis ligger uden for dette spørgsmåls omfang. I stedet bliver du nødt til at tjekke hver forespørgsel, du foretager i databasen, for advarsler:

$warningCountResult = mysql_query("SELECT @@warning_count");
if ($warningCountResult) {
    $warningCount = mysql_fetch_row($warningCountResult );
    if ($warningCount[0] > 0) {
        //Have warnings
        $warningDetailResult = mysql_query("SHOW WARNINGS");
        if ($warningDetailResult ) {
            while ($warning = mysql_fetch_assoc($warningDetailResult) {
                //Process it
            }
        }
    }//Else no warnings
}

Det er klart, at dette vil være uhyggeligt dyrt at anvende i massevis, så du skal måske nøje tænke over, hvornår og hvordan advarsler kan opstå (hvilket kan føre dig til refaktorer for at eliminere dem).

Til reference, MySQL VIS ADVARSLER

Selvfølgelig kan du undvære den indledende forespørgsel for SELECT @@warning_count , hvilket ville spare dig for en forespørgsel pr. udførelse, men jeg inkluderede den for pedantisk fuldstændighed.



  1. Sådan importeres en SQL Server-database til Access 2016

  2. Hvad er SQL Server?

  3. Kan ikke oprette forbindelse til PostgreSQL-server:kunne ikke oprette forbindelse til server:Tilladelse nægtet

  4. PHP MYSQL - Forskel mellem 127.0.0.1 og localhost