0

だから基本的にここに私の問題があります。データベース抽象化レイヤーとして MDB2 を使用しながら、SQL Express 2008 に接続できるソリューションを探しています。このようなものが必要なのは、主に MySQL と Postgres を使用できるようにする必要があるためです (現時点では ORM はオプションではないようです)。

できれば、PHP5.2 と PHP5.3 の両方で機能するソリューションが必要です。

最初は、php_mysql 拡張機能の道をたどりましたが、PHP 5.3 では利用できないようです。

php_pdo_mssql は MDB2 で使用できないようで、それはアウトのようです。

最後に、MS が開発した「SQLSRV」拡張機能があります。ある時点で MDB2 の「拡張機能」に取り組んでいるように見えますが、メイン ブランチには含まれていないようです。

お願いします...誰か私に解決策はありますか?

4

1 に答える 1

0

これに関する情報を探している他の人のために...これまでのところ、PHP5.2で実行されているMDB2でSQLExpress2008を動作させています。

リモートサーバーへの接続はまだ試していません。これまでのところ、ローカルホストで実行されているSQLExpressにのみ接続しています。

使用しているPHPにphp_mssql.dll拡張子が付いているかどうかはわかりません。いずれにしても、無効にしました。代わりに、 http: //docs.moodle.org/en/Installing_MSSQL_for_PHPのリンクからダウンロードしたphp_dblib.dllを使用しました。このライブラリは、FreeTDS(freetds.orgから)のビルドです。私はまだそれで主要なテストをしていませんが、私はそれに接続することができます、そして私は彼らがそれで「実際の」成功を収めていると同僚から言われました。

php_dblib.dllは、php_mssql.dllが提供するmssql_*関数の「置換」関数を提供します。したがって、php_dblib.dll拡張機能を有効にする前に、php_mssql.dll拡張機能を無効にする必要があります。

注意すべきその他の小さなこと:

1)SQL ExpressとPHPに関するほとんどのドキュメントでは、DB接続情報のホストセクションに「インスタンス」名を含める必要があると記載されていますが、これは機能しないことがわかりました。実際、明示的に削除する必要がありました。 「\SQLEXPRESS」。

2)上記のMoodleリンクはphp_dblib.dllのPHP 5.3ビルドを提供しますが、残念ながらそれらはVC9でビルドされています。私が持っているPHP5.3のインストールはVC6でビルドされたので、PHP5.3用の独自のphp_dblib.dllのビルドに取り組んでいます。

とにかく、これが同じ問題を抱えている人々に役立つことを願っています。

于 2010-04-06T11:53:34.503 に答える