sql >> Databasteknik >  >> RDS >> Mysql

Kan jag upptäcka och hantera MySQL-varningar med PHP?

För att varningar ska "flaggas" till PHP naturligt skulle det krävas ändringar av mysql/mysqli-drivrutinen, vilket uppenbarligen ligger utanför denna frågas omfattning. Istället måste du i princip kontrollera varje fråga du gör i databasen för varningar:

$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
}

Uppenbarligen kommer detta att bli fruktansvärt dyrt att applicera i massa, så du kan behöva fundera noga på när och hur varningar kan uppstå (vilket kan leda till att du återställer dem för att eliminera dem).

Som referens, MySQL SHOW WARNINGS

Naturligtvis kan du avstå från den initiala frågan för SELECT @@warning_count , vilket skulle spara dig en fråga per exekvering, men jag inkluderade den för pedantisk fullständighet.



  1. mysqli_connect():(HY000/2002):Kan inte ansluta till lokal MySQL-server via socket

  2. Hibernate:Skapa/uppdatera db-tabellerna automatiskt baserat på entitetsklasser

  3. Skapa åtkomstmeny med kontroll av trädvy

  4. SQL Server delar upp CSV i flera rader