Aby ostrzeżenia były "oznaczone" natywnie w PHP, wymagałoby to zmian w sterowniku mysql/mysqli, co oczywiście wykracza poza zakres tego pytania. Zamiast tego będziesz musiał sprawdzić każde zapytanie w bazie danych pod kątem ostrzeżeń:
$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
}
Oczywiście stosowanie en-masy będzie strasznie drogie, więc być może będziesz musiał dokładnie przemyśleć, kiedy i jak mogą pojawić się ostrzeżenia (co może prowadzić do refaktoryzacji w celu ich wyeliminowania).
Dla porównania, MySQL SHOW OSTRZEŻENIA
Oczywiście możesz zrezygnować z początkowego zapytania dla SELECT @@warning_count
, co zaoszczędziłoby Ci zapytania na wykonanie, ale włączyłem je dla pedantycznej kompletności.