2

PHP Webアプリケーションで、PDO :: MYSQL_ATTR_MAX_BUFFER_SIZEで致命的なエラーが発生しましたが、非常にまれなホスティングプランでのみ発生します。この定数は利用できないと言っています。利用できないことを検出して使用しないようにするにはどうすればよいですか?

つまり、if(!defined(...))if / thenチェックを使用できますが、MYSQL_ATTR_MAX_BUFFER_SIZEがPDOでコンパイルされていないシステムでは、致命的なエラーが発生しますか?MYSQL_ATTR_MAX_BUFFER_SIZEとmysqlndに関する既知のバグがあり、mysqlndがインストールされている場合はコンパイルされないことに注意してください。バグは「修正されない」とマークされています。

4

1 に答える 1

4

あなたはdefined()きちんと使っていません、私の推測です。文字列を指定する必要があります。

if( defined( 'PDO::MYSQL_ATTR_MAX_BUFFER_SIZE' ) ) // note the quotes
{
    // do something useful with PDO::MYSQL_ATTR_MAX_BUFFER_SIZE
}

上記の例では、を使用して、セットアップ(PHP 5.3.20、PDO::MYSQL_ATTR_MAX_BUFFER_SIZE定義されていません)で通知/警告/エラーを発行しませんerror_reporting( E_ALL | E_STRICT )

于 2013-01-30T04:08:04.743 に答える