2017-02-16 4 views
0

リモートのSQLサーバに接続しようとしましたが、コマンドラインから成功しました。 php -i | grep PDOを実行している場合は、コマンドラインからPHPスクリプトを実行しているとき、私は symfonyのphpとコマンドラインから実行されたphpが異なるドライバをロードしています

PDO 
PDO support => enabled 
PDO drivers => sqlsrv, dblib, mysql 
PDO Driver for FreeTDS/Sybase DB-lib => enabled 
PDO Driver for MySQL => enabled` 

を取得し、私は何の問題は、リモートDBに接続することはできません。私はsymfonyにおいて phpinfo()を実行すると、私はコマンドラインから phpinfo()を実行すると、私のsymfonyのアプリケーションでそのまったく同じコードを実行しているとき、私は

[Doctrine\DBAL\Driver\PDOException]        
SQLSTATE[01002] Adaptive Server connection failed (severity 9) 

を取得し、起動しただけPDOドライバはmysql

あり、I mysql、sqlsrv、dblibを取得する

symfonyに読み込まれないpdoドライバはいくつかありますか?

編集:DBがsymfonyで正しく設定されているため、php bin/console doctrine:query:sql "SELECT * FROM my_table"が結果を返します。 symfonyのエラーで "ドライバをロードできませんでした"と同じクエリが実行されました

+0

の使用についてです。 phpininiを実行し、phpinfo – Cerad

+0

@ceradでリストされたパスと比較すると、両方とも '/ etc/php/7.0/cli/php.ini'がロードされた設定ファイルとして表示されます –

+0

有効になっているモードは異なる場合もあります。 /etc/php/7.0/apache/fpmまたはその他のフォルダを確認して、pdo modがcliフォルダ内にあるように有効になっているか確認してください。 – mickadoo

答えて

0

symfonyプロジェクトのapp/config.ymlファイルにこれらのpdoドライバについて言及しましたか?

symfonyは、それらを認識して使用するために、それらのドライバに関するsymfony(つまり、config.ymlファイルに書き込むことを意味します)を伝える必要があります。

それはあなたを助けるかもしれない、このトピックをチェックし、それはあなたがあなたのシステム上の2つの異なるphp.iniのファイルを持っているMySQLのPDOドライバとPostgreSQLのPDOドライバ

Use a postgres database with symfony3

+0

私は持っていましたが、これは解決策に私をもたらしました。ドライバを "dblib"に直接設定することはできませんが、この[リンク](https://packagist.org/packages/leaseweb/doctrine-pdo-dblib)では代わりに使用できるドライバクラスが作成されます。これを正しくマークしてくれてありがとう。 –

+0

スクラッチは実際にそこに着くことはなかった。私はdoctrineを使用してDBに接続できましたが、bin/consoleを使用してコマンドラインからのみ再度接続できました。私は、アプリケーションでクエリを実行すると、私は "ドライバを読み込めませんでした" –

関連する問題