5

PHPとDBXを使用してMSSQLServerに接続しようとしています。phpinf()を使用すると、dbxが有効になっていることに気付くことができます。

dbx

dbx support enabled
dbx version 1.0.0
supported databases MySQL ODBC PostgreSQL Microsoft SQL Server FrontBase Oracle 8 (oci8) Sybase-CT.

しかし、接続しようとすると、次のエラーが表示されます。

Warning: dbx: module 'mssql' not loaded.

これはコードです:

dbx_connect("mssql","host","database","user","password");

これを解決するためのアイデアはありますか?

4

1 に答える 1

3

DBXを使用しないことをお勧めします。これはデッドモジュールであり、最新のコードでは使用しないでください。

DBXは、バージョン5.1で標準のPHPから削除されました。あなたがそれをインストールしている場合、それは誰かがそれをPECLモジュールとしてインストールするのを邪魔したか、あなたが非常に古いバージョンのPHPを使用していることを意味します。

要件ページには、次のように記載されています。

dbx-moduleでデータベースを使用できるようにするには、モジュールをリンクするか、PHPにロードする必要があります

DBXがMSSQLServerとの通信をサポートする唯一のモジュールは、古い mssql_ファミリです。この拡張機能は、WindowsPHPバージョン5.3以降では使用できなくなりました

Linuxを使用していて、OSが提供するPHPリリースを使用している場合は、それをインストールできる可能性があります。php-mssqlまたはを探しphp53-mssqlます。パッケージの説明で「FreeTDS」を検索したときにも表示される場合があります。利用可能なパッケージがない場合は、苦痛の世界にいる可能性があります。 コンパイルしてインストールするのはかなりの負担ですmssql_

ただし、はるかに優れた選択肢があります。

DBXの目標は、既存の多数のPHPデータベースアダプターと通信できるようにする一連の統合された関数を提示することでした。その役割は現在、PDOによって満たされています。Windowsを使用している場合は、PDO_SQLSRVを使用する必要があります。Windowsを使用していない場合は、PDO_DBLIB(ファミリと同じバックエンドを使用mssql_)またはPDO_ODBCを使用できます。これまでにPDOを使用したことがない場合は、いくつかの優れたチュートリアルがあります。これはMySQLユーザーを対象としていますが、他のデータベースにも適用されます。

作成したコードがMSSQLServerでの実行のみを目的としており、WindowsでPHPを実行している場合は、代わりにsqlsrv_一連の関数を使用してコードを作成することも検討できます。

于 2012-12-11T09:18:58.477 に答える