Ответ 1
extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll
Я столкнулся с довольно несколькими сообщениями по одному и тому же вопросу, однако я все еще не могу его разрешить, и поэтому я спрашиваю. Я пытаюсь подключиться к sql в моем php script. Моя строка подключения:
/* Specify the server and connection string attributes. */
$serverName = "xxx-PC\SQLExpress";
$connectionOptions = array("Database"=>"Salesforce");
$conn = sqlsrv_connect($serverName, $connectionOptions);
if($conn === false)
{
die(print_r(sqlsrv_errors(), true));
}
Я установил и включил следующее в мой файл php.ini
, расположенный под папкой wamp: C:\wamp\bin\php\php5.4.16
:
extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll
Мой wampserver
работает нормально, а также службы wampapache
и wampsqld
. Я могу успешно выполнить php.exe. Однако я не могу установить соединение с SQL Server 2008 R2
, где находится моя база данных. Пожалуйста, помогите!
РЕДАКТИРОВАТЬ 1: сервер wamp запускает службу wampmysql, пока я пытаюсь подключиться к SQL Server 2008 R2
. Может ли это быть причиной? Должен ли я использовать MySQL
вместо SQL
? Любые указатели?
EDIT 2: я вообще не вижу раздел sqlsrv
при запуске phpinfo()
, хотя я добавил extension=php_sqlsrv_54_ts.dll
в файл php.ini
, расположенный в папке bin на сервере Wamp.
extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll
При установке сторонних расширений необходимо убедиться, что все параметры компиляции совпадают:
Общие глюки включают в себя:
php.ini
(что типично для пакетов); правильный путь показан в phpinfo()
.Невозможность увидеть ошибки при запуске; они должны отображаться в журналах Apache, но вы также можете использовать командную строку для диагностики, например:
php -d display_startup_errors=1 -d error_reporting=-1 -d display_errors -c "C:\Path\To\php.ini" -m
Если все в порядке, вы должны увидеть sqlsrv
в выводе команды и/или phpinfo()
(в зависимости от того, какой SAPI вы настраиваете):
[Модули PHP]
BCMath
календарь
Основные
[...]
SPL
SQLSRV
стандарт
[...]
Если вы используете Microsoft Drivers 3.1, 3.0 и 2.0.
Пожалуйста, проверьте версию PHP, уже установленную с IIS.
Используйте этот скрипт для проверки версии php:
<?php echo phpinfo(); ?>
ИЛИ
Если вы установили PHP Manager в IIS с помощью установщика веб-платформы, вы можете проверить его версию.
Тогда:
Если вы используете новую версию PHP (5.6), пожалуйста, загрузите драйверы отсюда
Для версии PHP ниже 5.6 - пожалуйста, загрузите драйверы отсюда
Затем с помощью диспетчера PHP добавьте загруженные драйверы в файл php config
. Вы можете сделать это, как показано ниже (просмотрите файлы и нажмите OK).
Затем перезапустите сервер IIS
Если этот метод не работает, измените версию php и попробуйте запустить скрипт php.
Совет: измените php version
на более низкий и попытайтесь понять, что произошло. Затем вы можете загрузить соответствующие драйверы.
Сначала убедитесь, что расширение правильно загружено в phpinfo();
(должно появиться что-то вроде sqlsrv
). Если нет, расширение неправильно загружено. Вам также необходимо перезапустить apache после установки расширения.
У меня такое же, потому что в httpd.conf в apache PHPIniDir D:/wamp/bin/php/php5.5.12
это было неверно
Поделиться некоторыми из моих выводов: