我有一臺Linux服務器Debian 6,安裝了Apache 2.2和PHP 5.4。 我需要連接我的應用程序與MS SQL Server 2008.Linux上的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將不起作用。
第二,我嘗試使用FreeTDS的PDO驅動程序。這個工作正常,我可以使用我的ZF 1.11應用程序。
但是後來我又遇到了一個問題:charsets。 配置我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,我不能在querys上傳遞這個'N'屬性!所以我的應用程序仍然沒有工作。
正如你所看到的我嘗試了一切。
所以我的問題是:如何在MS SQL Server 2008上使用ZF 1.11 charset UTF-8從linux進行連接?