警告をPHPにネイティブに「フラグ付け」するには、mysql / mysqliドライバーを変更する必要がありますが、これは明らかにこの質問の範囲を超えています。代わりに、基本的に、データベースで行うすべてのクエリで警告を確認する必要があります。
$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
}
明らかに、これは一括で適用するのに恐ろしいほどの費用がかかるため、警告がいつどのように発生するかを慎重に検討する必要があるかもしれません(これにより、警告を排除するためにリファクタリングする可能性があります)。
参考までに、<a rel="nofollow noreferrer noopener" href="https://dev.mysql.com/doc/refman/5.0/en/show-warnings.html"> MySQL SHOW WARNINGS
もちろん、SELECT @@warning_count
の最初のクエリを省略できます。 、実行ごとのクエリを節約できますが、完全を期すために含めました。