2012-02-22 2 views
1

Использование PHP Я пытаюсь подключиться к таблице SQL Server, который имеет дефис в имени, возвращается ошибкаИспользование PHP для подключения к SQL Server

Предупреждение: mssql_select_db() [function.mssql-выберите -db]: message: Не удалось найти запись в sysdatabases для базы данных «SMD». Нет записи с этим именем. Убедитесь, что имя введено правильно. (серьезность 16) в C: \ xampp \ xampp \ htdocs \ second.php в строке 12

Предупреждение: mssql_select_db() [function.mssql-select -db]: Невозможно выбрать базу данных: SMD-GROUP в 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

+0

Или избежать его "SMD \ -GROUP" –

+0

PHP-драйвер MSSQL устарел и на самом деле расстроен для PHP 5.3. Вам следует рассмотреть возможность перехода на Microsoft SQL Server Driver for PHP (SQLSRV): http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx – dbrumann

ответ

6

Посмотрите http://php.net/manual/en/function.mssql-select-db.php:

Чтобы избежать имени базы данных, содержащей пробелы, дефисы («-») или любые другие исключительные символы, имя базы данных должно быть заключено в скобки.

0

Лучше, если вы используете класс PDO для подключения к базе данных с PHP, поскольку PDO поддерживает несколько драйверов DB и лучше поддерживается. PHP Data Objects

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

если вы используете MSSQL сервер 2005 или выше .. Вы должны использовать драйверы SQLSRV от Microsoft. Будьте осторожны, все еще неспособность к производительности из-за неразрешимых ошибок на PHP5.4 и выше. Вы должны знать, скомпилирован ли ваш PHP на VC6 или VC9, если он потокобезопасен или нет. Лучше увидеть эту ссылку http://php.net/manual/en/book.sqlsrv.php.

помните, что php_mssql.dll уже устарел на PHP5.4 и выше. Кроме того, я уже тестировал это на наших серверах UAT и Producion. Ура!

Смежные вопросы