我有一个Linux服务器的Debian 6,使用Apache 2.2和PHP 5.4安装。 我需要我的应用程序与MS SQL Server 2008的连接。
我的应用程序使用Zend Framework 1.11和字符集UTF-8(我会在世界上所有地方的用户,他们将数据放在自己的语言)。
FRIST,我试图使用Microsoft SQL Server ODBC驱动程序的Linux版本。 它说的是仅适用于红帽,但我按照这些说明进行安装:
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不会,如果这方面的工作。
第二,我尝试使用PDO驱动程序freetds的。 这一个好的工作,我可以在我的ZF 1.11应用程序中使用。
但后来,我得到了更多的一个问题:字符集。 配置我freeTDS.conf使用UTF-8,改变我的表使用NVARCHAR insted的VARCHAR,并可以插入UTF-8的数据是这样的:
$stmt = $dbh->prepare("insert into mar_teste (name) values (N'ンから初・配信 € зеленый банан ÀÀÀÀáááááá')");
$resp = $stmt->execute();
但是,在我的ZF 1.11,我不能接受这“N”上querys属性! 所以,我的申请仍然没有奏效。
正如你可以看到我都试过了。
所以我的问题是 :如何从Linux连接,采用ZF 1.11字符集UTF-8,MS SQL Server 2008上?