PHP 5.2.13 がインストールされた UNIX サーバーがあり、2 つの SQL サーバーにアクセスできます (1 つは MSSQL SERVER 2000 を実行し、もう 1 つは MSSQL 2005 を実行しています)。
FreeTDS を使用します - 詳細:
- バージョン: freetds v0.82
- freetds.conf ディレクトリ: /usr/local/etc
- MS db-lib ソースの互換性: いいえ
- Sybase バイナリ互換性: いいえ
- スレッドセーフ: はい
- iconv ライブラリ: はい
- TDS バージョン: 8.0
- iODBC: いいえ
- unixodbc: はい
そして、私はunixODBC-2.3.1を使用しています
MSSQL 2000 サーバーは問題ありません。すべての SQL ステートメントを実行でき、MySQL の場合と同じように mssql_num_rows と mssql_fetch_assoc を使用できます。
ただし、MSSQL 2005 サーバーは mssql_num_rows または mssql_fetch_assoc では機能しません。odbc_fetch_row を使用する必要があります。
それは実際には問題ではありません。サーバーのインストールが異なるためだと思います。
ただし、MSSQL 2005 サーバーには大きな問題があります。別の名前としてフィールドを選択できません!
例えば:
SELECT
[EnquiryID] AS "The_Key"
FROM [db].[dbo].[table]
管理アプリケーション (つまり、PHP ではない) では正常に動作しますが、PHP 環境で同じものを実行すると、次のようになります。
stdClass Object
(
[PK_EnquiryID] => 1
)
あなたはそれがすべきであることがわかります[The_Key] => 1
どうすればこれを回避できるか、誰か知っていますか?髪をかきむしる!
乾杯
ニール