3

ここで説明したものと同様の問題があります。

すべてが期待どおりに機能します。私のコードはデータベースにアクセスし、コマンド ライン インターフェイスから実行したか Web ブラウザから実行したかに関係なく、出力を出力します。同じ結果です。PHPUnit を使用して Eclipse で実行すると、エラーが発生します。

Multiple annotations found at this line:
    - Fatal error: Class 'mysqli' not found
    - Occurrence of 'connection'

次の行を指しています:

このコードは「はい」を出力します。

$connection = new \mysqli(HOST, USER, PASS, DATABASE);

if (extension_loaded('mysqli')) {
    echo "Yes";
}
else {
    echo "No";
}

指摘すべきもう 1 つのことは、上記のコードが配置されているクラスで独自の名前空間を使用していることです。単体テストはグローバル名前空間にあります。

上記の URL の手順に従いましたが、残念ながら役に立ちませんでした。:(

コマンド プロンプトでこれを実行すると、エラーは発生しません。

php -r "new mysqli();"

誰かがここで問題を理解するのを手伝ってくれませんか?

4

1 に答える 1

0

php.iniDLL または共有オブジェクト (.so) ファイルのいずれかの正しいパスでファイルを構成したかどうかはわかりません。Unix/Linux を使用している場合は、コマンド ラインで実行してみてください。

$> php -i | grep mysqli

何かがインストールされていると表示されるかどうかを確認するか、PHPスクリプトを作成します

<?php phpinfo(); ?>

そのスクリプトを実行し、正しくロードされているかどうかを確認します。本当にインストールされていると確信できる場合は、php.ini の「拡張子」セクションを調べて、php.ini ファイルが正しくロードされているかどうかを確認してください。

コマンドラインで実行している場合は、PHPUnit を実行するときにも確認してください。Web モードで実行している場合、php.ini と php.ini のパスが異なる可能性があるためです。

于 2013-01-21T14:40:59.317 に答える