PHP、MS SQL ServerおよびUTF-8

職場では、Microsoft SQL Server 2008で動作するようにシステムをセットアップするタスクに直面しました。システムは多言語をサポートする必要があります。その結果、すべての文字列データはnvarcharやntextなどのフィールドに保存する必要があります。 問題は、php_mssql.dllがこれらのフィールドを操作できず、PDOおよびPHP用のSQL Serverドライバーを使用するには、多くのコードを書き直す必要があることでした。

問題の解決は難しくありませんでした...


SQL Serverにアクセスするには、 FreeTDSライブラリを使用します。

1. phpの拡張機能をダウンロードし、dllをextension_pathフォルダーにコピーします。

http://download.moodle.org/download.php/dblib/php52/DBLIB_TS.zip (スレッドセーフ)
http://download.moodle.org/download.php/dblib/php52/DBLIB_NOTS.zip (非スレッドセーフ)

2. php.iniでextension = php_mssql.dllを無効にします

3. php.iniにextension = php_dblib.dllをインストールします

4.ファイルc:\ freetds.confを作成します

[global]
host = xxx.xxx.xxx.xxx (ip of the MSSQL server)
port = 1433
client charset = UTF-8
tds version = 8.0
text size = 20971520


5.以上です。 これで、すべてのmssql_ *関数がこれらのタイプのフィールドで正しく機能するはずです。

ps SQLServer Expressに接続するために、ホスト名に/ SQLEXPRESSを追加する必要はありません。

Source: https://habr.com/ru/post/J75776/


All Articles