sql >> Databáze >  >> RDS >> Mysql

Mohu detekovat a zpracovat varování MySQL pomocí PHP?

Aby byla varování "přihlášena" do PHP nativně, vyžadovalo by to změny ovladače mysql/mysqli, což je zjevně mimo rámec této otázky. Místo toho budete muset v podstatě zkontrolovat každý dotaz, který v databázi provedete, na varování:

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

Je zřejmé, že to bude strašlivě nákladné aplikovat en-mass, takže možná budete muset pečlivě zvážit, kdy a jak se mohou objevit varování (což vás může vést k přepracování, abyste je odstranili).

Pro informaci MySQL ZOBRAZIT VAROVÁNÍ

Samozřejmě se můžete obejít bez počátečního dotazu na SELECT @@warning_count , což by vám ušetřilo dotaz na provedení, ale zahrnul jsem ho pro pedantskou úplnost.



  1. Funkce pro vrácení dynamické sady sloupců pro danou tabulku

  2. Jak seskupit podle měsíce z pole Datum pomocí sql

  3. MySQL AUTO_INCREMENT se nevrací

  4. Převést číslo měsíce na funkci názvu měsíce v SQL