Я установил PHP на IIS7 после официальной документации PHP, и это успешно. Я могу запускать файлы PHP, и мой сайт в порядке. Но я не могу подключиться к своей базе данных на MSSQL с драйверами PDO и ODBC. Я настроил свой php.ini осторожно, и я думаю, что все хорошо. Более того, я также считаю, что ODBC является родным для Windows, а PDO включен в последние версии PHP (мой - 5.5.36).PHP PDO ODBC MSSQL соединение
Так вот мой код подключения:
define("UID", 'uid');
define("PWD", 'pwd');
define("DSN", 'odbc:decheterie');
// where 'decheterie' is the dataSource set in the ODBC Connection Manager
try {
$pdo = new PDO(DSN, UID, PWD);
} catch (PDOException $e) {
die("Error! ".$e->getMessage());
}
Ошибки я получаю:
Ошибка! Не удалось найти драйвер
Если я запустил php -m
, я вижу, что модули PDO и ODBC правильно загружены. Но a PDO::getAvailableDrivers()
возвращает пустой массив, и он может быть проверен в пределах phpinfo()
, который отображает «no value» в разделе «PDO drivers».
Я прочитал много сообщений и статей, и каждый раз, когда ответ валиден, как «решение проблем», он уже хорош в моей конфигурации.
Если кто-то может помочь, он будет благословлен;)
PHP -m является CLI PHP, который может/будет иметь совершенно другой файл .ini, чем SAPI PHP (встроенный в веб-сервер). если вы используете этот код под веб-сервером, вам нужно проверить phpinfo(), потому что вывод cli практически бесполезен. и даже если PDO установлен, вам все равно нужны конкретные драйверы БД, например. PDO-MySQL. –
Вы пытались включить 'php_pdo_sqlsrv _ *. Dll' в модулях в консоли управления IIS? – gofr1
Спасибо за информацию Marc, так важно проверить правильную процедуру. php_pdo_odbc.dll в ON, даже если он должен быть встроен в Windows. Я загрузил и ссылался на php_pdo_sqlsrv _ *. Dll, и он отлично работает! Спасибо Gofr1 – Ben