2

getAttribute 関数を使用しようとすると、次のエラーが発生します: 非オブジェクトでメンバー関数 getAttribute() を呼び出します。mysqlnd が有効になっているようですが、get_result() も使用できません。

これは最近本当に私を悩ませています。別の投稿で @inspire は正しく答えましたが、うまくいきません。ここでそれを見つけることができます: MySQLnd がアクティブなドライバーかどうかを知るには?

これをエコーすると:

<?php
$mysqlnd = function_exists('mysqli_fetch_all');

if ($mysqlnd) {
    echo 'mysqlnd enabled!';
}

まったく何も起こらないので、私の phpinfo() が有効になっていると言っていても、明らかに有効になっていませんか?

アクティブな PDO ドライバーかどうかを検出するには、MySQL PDO オブジェクトを作成します。

if (strpos($pdo->getAttribute(PDO::ATTR_CLIENT_VERSION), 'mysqlnd') !== false) {
    echo 'PDO MySQLnd enabled!';
}

これを試すと、非オブジェクトでメンバー関数 getAttribute() が呼び出されます..

どんな助けでも大歓迎です。前もって感謝します。

4

2 に答える 2

0

phpinfo またはコードで、mysqlnd ドライバー自体をチェックしても意味がありません。

他の API をチェックしても意味がありません。必要な APIが、他の API ではなく mysqlnd に基づいているかどうかを確認する必要があります。したがって、PDO が必要な場合に mysqli をチェックしても意味がありません。

PDO を確認するには、エラー メッセージが示すように、最初に PDO オブジェクトが必要です。

于 2014-03-19T08:37:53.560 に答える