我正在研究必須通過PHP & PDO連接到MS SQL 2008 R2的Web應用程序。 我已成功安裝了驅動程序,並與檢查的話:通過XAMPP連接到SQL 2008 R2服務器
var_dump(PDO::getAvailableDrivers());
我用兩個Windows服務器(均爲2008年),一個用於SQL數據庫和其它的XAMPP。我們有大約八個程序從其他服務器連接到SQL服務器,所以我的猜測是連接問題不是SQL服務器本身。
這裏有一個很簡單的例子,從應用程序插入到MS SQL數據庫表:
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$company = $_POST['company'];
$name = $_POST['name'];
$firstname = $_POST['firstname'];
$number = $_POST['number'];
$host = $_POST['host'];
$licenseplate = $_POST['plate'];
$reason = $_POST['site'];
$timein = date('Y-m-d H:i:s');
$db = new PDO("sqlsrv:Server=MSSQLSERVER2,1433;Database=visitormod", "**************", "******************"); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO visitors (visitor_name, visitor_firstname, visitor_company, visitor_number, visitor_plate, visitor_in) VALUES (:lname, :fname, :company, :pnumber, :lplate, :tin)";
$q = $db->prepare($sql);
$q->execute(array(':lname'=>$name, ':fname'=>$firstname, ':company'=>$company, ':pnumber'=>$number, ':lplate'=>$licenseplate, ':tin'=>$timein));
下面是一些額外的信息:
的SQL服務器的主機名(計算機名本身)=的SQL SERVER的SQLSERVER
名稱(在SQL Server Management Studio中=我在哪裏連接)= MSSQLSERVER2
這裏是我的問題:
我不能夠成功連接到數據庫,我的猜測是其有關這
$db = new PDO("sqlsrv:Server=MSSQLSERVER2,1433;Database=visitormod", "**************", "******************");
這裏我用Server=MSSQLSERVER2
但是這僅僅是在SQL Server的服務器的名稱管理工作室。無處指向服務器本身也許這是我的問題,我需要一個ODBC連接?我在互聯網上閱讀,這只是在Linux環境中必需的?
有人可以幫我解釋一下我做錯了什麼嗎?我需要建立一個額外的連接嗎?
我想問的最後一個問題是我在哪裏可以看到要連接的端口號?
即
new PDO("sqlsrv:Server=MSSQLSERVER2,1433;
這是我收到我的網頁上的錯誤:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IMSSP]: This extension requires the Microsoft SQL Server 2012 Native Client ODBC Driver to communicate with SQL Server. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: go.microsoft.com/fwlink/?LinkId=163712';
哪個驅動程序是你安裝程序使用?官方微軟的(http://www.microsoft.com/en-us/download/details.aspx?id=20098)?你是否收到任何錯誤信息,如果有,你可以將它們發佈到你的問題中嗎? – Kev
對於爲什麼在生產IIS服務器上使用XAMPP也感到好奇,因爲PHP是Windows 2008+上的頭等公民。 – Kev
這是我在我的頁面上檢測到的錯誤:致命錯誤:帶有消息'SQLSTATE [IMSSP]的未捕獲異常'PDOException':此擴展需要Microsoft SQL Server 2012本機客戶端ODBC驅動程序與SQL Server進行通信。訪問以下URL以下載適用於x86的Microsoft SQL Server 2012 Native Client ODBC驅動程序:http://go.microsoft.com/fwlink/?LinkId = 163712'。我使用Xampp的原因是因爲在同一臺服務器上已經有2個IIS運行的實例了+我對IIS的瞭解不多 – Raz3rt