2012-02-22 155 views
1

使用PHP,我試圖連接到其在​​名稱中包含連字符SQL Server表,返回的錯誤是用PHP連接到SQL Server

警告:mssql_select_db()[function.mssql選-db]:message:無法在數據庫'SMD'的sysdatabases中找到條目。沒有找到該名稱的條目。確保名稱輸入正確。 (嚴重性16)在第12行C:\ xampp \ xampp \ htdocs \ second.php

警告:mssql_select_db()[function.mssql-select-db]:無法選擇數據庫:SMD-GROUP in C: \ XAMPP \ XAMPP \ htdocs中上線\ second.php 12
無法打開數據庫SMD-GROUP

守則

$myDB = "SMD-GROUP"; 
    $selected = mssql_select_db($myDB, $dbhandle) 
    or die("Couldn't open database $myDB"); 
+0

嘗試使用括號括起它們作爲「[SMD-GROUP]」 – jerjer 2012-02-22 10:41:33

+0

或轉義它「SMD \ -GROUP」 – 2012-02-22 10:43:52

+0

PHP的MSSQL驅動程序已過時,實際上對PHP 5.3不滿。您應該考慮切換到Microsoft的SQL Server的SQL Server驅動程序(SQLSRV):http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx – dbrumann 2012-02-22 10:50:09

回答

0

因爲PDO支持多個數據庫驅動程序並得到更好的支持,所以最好將PDO類用於與PHP的數據庫連接。 PHP Data Objects

$DB=new PDO('dblib:host='.$host.';dbname='.$database,$username,$password); 
2

如果您使用MSSQL Server 2005或更高..你應該通過微軟使用SQLSRV驅動程序。 請小心,由於PHP5.4及更高版本上的錯誤未解決,性能仍然不足。 你應該知道如果你的PHP是在VC6或VC9上編譯的,而且如果它是線程安全的或者不是。最好看到這個參考http://php.net/manual/en/book.sqlsrv.php

請記住php_mssql.dll在PHP5.4及更高版本上已被棄用。 另外,我已經在我們的UAT和Producion服務器上對此進行了測試。乾杯!