2013-10-22 93 views
3

我正在使用的服務器正在運行php 5.5,並安裝了FreeTDS dblib。帶有消息'SQLSTATE [](null)(severity 0)'的PDOException'

php -v return;

PHP 5.5.0-dev (cli) (built: Oct 23 2012 15:41:58) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

的生成是這樣;

Configure Command => './configure' '--with-apxs2=/usr/bin/apxs2' '--enable-track-vars' '--with-mssql' '--with-png-dir=/usr' '--with-jpeg-dir=/usr' '--with-zlib-dir=/usr' '--enable-ftp' '--with-gd' '--enable-freetype-4bit-antialias-hack' '--with-config-file-path=/etc' '--enable-calendar' '--with-curl' '--with-curlwrappers' '--enable-exif' '--with-mysql' '--with-ldap' '--with-freetype-dir=/usr' '--enable-sockets' '--with-pdo-mysql' '--enable-soap' '--with-mcrypt' '--with-pdo-dblib' '--with-openssl' '--enable-sysvsem' '--enable-shmop' '--enable-pcntl' '--with-xsl'

我只是試圖連接到具有以下的SQL Server框中;

<?php $pdo = new PDO ('dblib:host=fqdn,port;dbname=db', 'usr', 'passwd'); ?>

輸出如下;

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[] (null) (severity 0)' in /path/to/file.php:17 Stack trace: #0 /path/to/file.php(17): PDO->__construct('dblib:host=fqdn...', 'usr', 'passwd') #1 {main} thrown in /path/to/file.php on line 1

做完我對這個搜索現有的堆棧職位相當,它們都涉及到bug修復的PHP 5.2以來RCS,或更早版本freetds的的。考慮到這個服務器是5.5和FreeTDS的更高版本,我想知道如果有人有這個非常有用的空SQL狀態錯誤消息的答案。

有趣的是,遵循guide to confirming your FreeTDS installation建議的命令不能運行。我將嘗試重新安裝FreeTDS。

回答

5

因此,它似乎是你連接的地方,從哪個影響港口形式。

在基於Windows的服務器上使用PHP時,連接字符串應該是;

<?php $pdo = new PDO ('dblib:host=fqdn,port;dbname=db', 'usr', 'passwd'); ?> 

在基於Linux的服務器上使用PHP時,連接字符串應該是;

<?php $pdo = new PDO ('dblib:host=fqdn:port;dbname=db', 'usr', 'passwd'); ?> 

我假設fqdn /端口差異是基於您的連接而不是從情況。

不過,這個模塊的這個模塊的錯誤處理顯然沒有多少考慮!

相關問題