Om waarschuwingen native naar PHP te laten "vlaggen", zijn er wijzigingen nodig in het mysql/mysqli-stuurprogramma, wat uiteraard buiten het bestek van deze vraag valt. In plaats daarvan moet je in principe elke vraag die je in de database stelt controleren op waarschuwingen:
$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
}
Het is duidelijk dat dit verschrikkelijk duur zal zijn om massaal toe te passen, dus je moet misschien goed nadenken over wanneer en hoe waarschuwingen kunnen optreden (wat ertoe kan leiden dat je moet refactoren om ze te elimineren).
Ter referentie:MySQL SHOW WAARSCHUWINGEN
Natuurlijk kunt u afzien van de eerste zoekopdracht voor de SELECT @@warning_count
, wat u een zoekopdracht per uitvoering zou besparen, maar ik heb het opgenomen voor de pedante volledigheid.