10

Doctrine 2 (Symfony 2 用) を使用して Linux マシンから MSSQLServer に接続しようとしています。

pdo_dblib (FreeTDS/Sybase DB-lib 用の PDO ドライバー) をインストールし、コマンド ラインで tsql を介して、また php cli からも db サーバーに接続できます。したがって、私はこれが機能していることを知っています。

Symfony/app/config/parameters.ini ファイルで、データベース ドライバーとして database_driver="pdo_sqlsrv" を指定しました (これは によって処理されると読んだため) が、(コマンドを使用して)db_libデータベース作成コマンドを実行しようとすると、php app/console doctrine:database:createエラーが発生しています:

という名前の接続のデータベースを作成できませんでした ドライバが見つかりませんでした

次に、ドライバーを次のように変更しましたが、database_driver="pdo_dblib"現在エラーが発生しています。

[Doctrine\DBAL\DBALException]
指定された「ドライバー」pdo_dblib は不明です。Doctrine は現在、次のドライバーのみをサポートしています: pdo_mysql、pdo_sqlite、pdo_pgsql、pdo_oci、oci8、ibm_db2、pdo_ibm、pdo_sqlsrv

したがって、MSSQL に接続するには私の唯一のオプションのように思われるpdo_sqlsrvので、これをインストールすることにしました。ただし、ここで発見したのは、

PDO_SQLSRV 拡張機能は、Windows で実行されている PHP とのみ互換性があります。

したがって、doctrine でサポートされているドライバーと Linux で使用できるドライバーは、相互に排他的であるように見えます。検索したところ、これまでにこの問題が解決された例は見つかりませんでした (1 人の男が問題を解決済みとしてマークしましたが、スレッドを読んだとき、彼は開発環境を Windows ボックスに移動しただけでした...私が持っていたものとはまったく異なります念頭に置いて!)。

4

1 に答える 1

8

Linux(少なくともDebianベースのディストリビューション)では、phpにはphp5-sybaseSybaseとMSSqlのサポートをもたらすパッケージが必要です。

Debianベースのディストリビューションを使用している場合は、

$ sudo apt-get install php5-sybase
$ sudo service apache2 restart

php -r "phpinfo();" | grep "PDO drivers"

あなたに与えるべきです

PDOドライバー:dblib、mysql、sqlite、..。

dblib実際に必要なものです

Doctrineでこのドライバーを使用できるようになりました。この投稿: Doctrine 2-カスタムDBALドライバーを追加する方法は?答えを見つけるのを手伝ってくれました。

OPは、このバンドルをgitで使用して、連携させることを提案しています。

于 2012-07-11T14:29:36.393 に答える