Я использую PHP версии 5.3.8, которая была установлена через XAMPP вместе с Microsoft SQL Server 2008 R2 (SQLEXPRESS). У меня установлены драйверы правильно (я думаю) и добавили правильную строку в php.ini (расширение = php_pdo_sqlsrv_53_ts_vc9.dll, если быть точным).
Я пытаюсь подключиться к серверу так:
try { $DBH = new PDO("mssql:host=xxxx;dbname=xxxx", 'xxxx', 'xxxx'); } catch(PDOException $e) { echo $e->getMessage(); }
Я получаю ошибку «не могу найти драйвер», и я переработал всевозможные способы решения проблемы. Я пробовал все другие типы драйверов, но это единственный, что Apache не дает мне ошибку при запуске. Когда я запускаю phpinfo (), поля pdo_sqlsrv пусты, за исключением pdo_sqlsrv.log_severity, который установлен в 0.
Я DL'd мои драйверы от microsoft , и я пробовал как 2.0, так и 3.0
Любой совет будет потрясающим !!
mssql
– это старый способ сделать это, sqlsrv
должен быть более уместным! На самом деле расширение называется (extension = php_pdo_ sqlsrv _53_ts_vc9.dll);)
try { $DBH = new PDO("sqlsrv:Server=xxxx;Database=xxxx", 'xxxx', 'xxxx'); } catch (PDOException $e) { echo $e->getMessage(); }
Надеюсь это поможет!
Источник: http://php.net/manual/fr/ref.pdo-sqlsrv.connection.php
Не уверен, что это связано с запуском машины CentOS x86_64, но sqlsrv
не работал в качестве драйвера для меня, мне пришлось использовать dblib
:
try { $DBH = new PDO("dblib:host=xxxx;dbname=xxxx", 'xxxx', 'xxxx'); } catch (PDOException $e) { echo $e->getMessage(); }
Источник и благодарность: http://grover.open2space.com/content/use-php-and-pdo-connect-ms-sql-server