SQLの窓 イラストAC フリー素材

2012年06月12日

Microsoft Drivers 3.0 for PHP for SQL Server が実運用では役に立たない件について

いくらか紹介されてはいますが、確かに繋がることは繋がりますし、SQLServer のストアードプロシージャが必要な場合は意味があるかも解りませんが、実運用では悲惨なものでした。

悲惨な内容の列挙

1) Text 型で見事に関係の無い別メモリから余計にデータを取って来る(どうしようもないバグ)
2) UTF-8 で変換するのに、列名がSHIFT_JISのままやってくる。しかもデータは SHIFT_JIS を扱えない
3) なにかのタイミングでデータ取得に失敗する

もう、1) で既にアウトですが。

正しい対処方法

PHP の ODBC 接続をふつうに使う。mssql_query が odbc_exec になって odbc_fetch_array が数字インデックスの内容を取って来ない事を除けば、DSN 作ってオプション指定できるし、動的接続文字もありだし、ドライバも自由に選べるし、SHIFT_JIS でそのまま取得できるので言う事無しの結果でした。

※ 接続環境としては、TCP/IP のポートを固定にするのがミソです。


関連する記事

ピンポイントですが、SQLServer 2008 は SQLServer 7.0 のデータをロード出来ないのです



posted by at 2012-06-12 09:09 | PHP+DB | このブログの読者になる | 更新情報をチェックする