警告を 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
}
明らかに、これを大量に適用するには非常にコストがかかるため、いつ、どのように警告が発生するかを慎重に検討する必要があるかもしれません (警告を除去するためにリファクタリングする必要がある場合があります)。
参考までに、MySQL SHOW WARNINGS
もちろん、 の最初のクエリをSELECT @@warning_count
省くことができます。これにより、実行ごとにクエリを節約できますが、完全を期すために含めました。