2012-05-31 22 views
6

私はApache 2.2とPHP 5.4をインストールしたLinuxサーバーDebian 6を持っています。 アプリケーションをMS SQL Server 2008に接続する必要があります。Linux上のPHP 5.4:MS SQL Server 2008に接続するには?

私のアプリケーションでは、Zend Framework 1.11とcharset UTF-8を使用しています(世界各地のユーザーがいます。言語)。

FRIST、Linux用のMicrosoft SQL Server ODBCドライバを使用しようとしました。 それは言うだけではRed Hatのためですが、私はインストールするには、以下の手順に従ってください。

http://www.codesynthesis.com/~boris/blog/2011/12/02/microsoft-sql-server-odbc-driver-linux/

私は接続して、その上にいくつかの選択を行うが、私はそれにデータを挿入することができませんでしたでした。 pdo文にパラメータをバインドする際に問題が発生しました。次のような

挿入データは動作しませんでした:

$stmt = $conn->prepare("insert into mar_regions (name) values (:name)"); 
$resp = $stmt->execute(array(':name' => $param)); 

しかし、私はこのように使用している場合、それが動作します:

$stmt = $conn->prepare("insert into mar_regions (name) values ('".$param."')"); 
$resp = $stmt->execute(); 

私のアプリケーションので、だから私は、このドライバからあきらめましたこの場合、ZF 1.11は動作しません。

私は、FreeTDS用のPDOドライバを使用しようとしています。これは正常に動作し、私はZF 1.11アプリケーションで使用できます。

しかし、もう一つ問題があります。文字セットです。

$stmt = $dbh->prepare("insert into mar_teste (name) values (N'ンから初・配信 € зеленый банан ÀÀÀÀáááááá')"); 
$resp = $stmt->execute(); 

しかし、私のZF 1.11上で、私はできません: 私は、UTF-8、このようなデータVARCHARのinsted、UTF-8を使用NVARCHARを使用するために私のテーブルを変更するには、私のfreeTDS.confを設定して挿入することができquerysにこの 'N'属性を渡してください!だから私のアプリケーションはまだ動作しませんでした。

ご覧のとおり、私はすべてを試しました。

私の質問はです:MS SQL Server 2008でZF 1.11 charset UTF-8を使用してLinuxから接続する方法は?

答えて

4

私の質問に対する答えは:freeTDSを使用してください! はそれに文字セットのパラメータをtheresの:

のZend Framework上で
[MyDSN] 
    host = <<ip>> 
    port = <<port>> 
    # use 8.0 for newer versions of SQLSERVER 
     tds version = 8.0 
     # text size don't need to be such a high value, its just an example 
     text size = 4294967295 
     client charset = UTF-8 

、このようなあなたの接続設定:

;; BANCO DE DADOS LINUX 
database.adapter    = PDO_MSSQL 
database.params.pdoType   = dblib 

database.params.host   = MyDSN 
database.params.dbname   = <<dbname>> 
database.params.username  = <<username>> 
database.params.password  = <<passwd>> 
database.params.driver_options.charset = UTF-8 

database.isDefaultTableAdapter = true 

それは問題を解決します! ;)

関連する問題