2012-02-22 247 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服务器上对此进行了测试。干杯!