2012-04-24 3 views
0

При запуске апача (через XAMPP) как автономный сервер не в качестве службы (на Windows Server 2008)PHP апач (XAMPP) подключение ODBC выпуск

со следующим кодом подключения все работает отлично (имя пользователя и пароль удален)

$server = "WMS"; 
$link = odbc_connect($server,'',''); 

if (!$link) { 
    die('Something went horribly wrong while connecting to MSSQL'); 
}else {echo('');} 

Если же я изменить апач для работы в качестве службы в Windows, Разрывы соединения и я получаю следующее сообщение об ошибке

Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Driver Manager] 
Data source name not found and no default driver specified, SQL state IM002 in SQLConnect in 
C:\xampp\htdocs\Dev\well.php on line 30 

    Something went wrong while connecting to MSSQL 

ответ

1

Пожалуйста, прочитайте документацию: http://uk.php.net/manual/en/function.odbc-connect.php

$server = "WMS"; предполагает, что у вас есть псевдоним/источник данных ODBC, настроенный с этим именем. В сообщении об ошибке четко указано, что источник данных с таким именем (WMS) не найден. В Windows 7/Vista/XP/Server вы можете настроить их в «Пуск -> Администрирование -> Источники данных (ODBC)» - путь может отличаться от старой ОС. В любом случае - найдите «Microsoft ODBC Data Source Administrator».

Вместо использования псевдонима я бы рекомендовал (способ, которым я всегда подключаюсь) использовать полное имя DSN, например.

// Microsoft SQL Server using the SQL Native Client 10.0 ODBC Driver - allows connection to SQL 7, 2000, 2005 and 2008 
$link = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password); 

В этом случае все является частью сценария и внешних зависимостей.

BTW - вместо того, чтобы использовать функции ODBC, я бы рекомендовал использовать PDO & драйвер специально для MS SQL Server: PDO_SQLSRV - http://uk.php.net/manual/en/ref.pdo-sqlsrv.php (или драйвер Microsoft SQL Server для PHP если вы предпочитаете старый процедурный стиль - http://uk.php.net/manual/en/book.sqlsrv.php)

+0

У меня есть установка источника DATA (ODBC) с именем WMS, я думаю, что так работает, потому что, если я изменю '$ server =" WMS ";' на что-то еще, он не подключается (когда apache работает не как служба), возможно, мне нужна информация о драйвере в строке odbc_connect. Я попробую – ScottC

+0

также Я использую SQL Server 2012, эта линия также применяется к 2012 году? или я должен быть чем-то другим? – ScottC

+0

Я использую приведенную ниже строку для подключения к SQL Server 2008 R2, а также SQL Server 2005 (все зависит от версии собственного клиента SQL Server у меня есть - от SQL Server 2008) - насколько я знаю, строка подключения должна быть одинаковой для версии 2012 года. ''Provider = SQLNCLI10; SERVER ='. CFG_DB_SERVER. '; UID ='. CFG_DB_LOGIN. '; PWD ='. CFG_DB_PASSWORD. '; DATABASE ='. CFG_DB_DATABASE. ';'' – LazyOne

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