sql >> データベース >  >> RDS >> Mysql

PHPでMySQL警告を検出して処理できますか?

    警告を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の最初のクエリを省略できます。 、実行ごとのクエリを節約できますが、完全を期すために含めました。



    1. OracleのNANVL()関数

    2. Linux上のMSSQLServerとWindowsのパフォーマンステストで違いを見つける

    3. #1273-不明な照合:'utf8mb4_unicode_ci' cPanel

    4. 特別な目的でSQLカーソルを使用する方法