php 7 не удалось инициализировать sqlsrv


Я весь день искал решение для библиотеки dll sqlsrv на потокобезопасном php 7 VC14 x64 и не нашел решения. Кто-нибудь решил эту проблему:

[04-Oct-2015 19:48:05 UTC] PHP Warning:  PHP Startup: pdo_sqlsrv: Unable to initialize module
Module compiled with module API=20131226
PHP    compiled with module API=20141001
These options need to match
 in Unknown on line 0

Вот моя информация о php7 RC4:

System  Windows NT 6.0 build 6002 (Windows Server 2008 Standard Edition Service Pack 2) AMD64
Build Date  Sep 29 2015 17:15:28
Compiler    MSVC14 (Visual C++ 2015)
Architecture    x64
Author: Pierre-Luc Bolduc, 2015-10-05

3 answers

Sqlsrv еще не готов для PHP7, но это неправда, что он не был выпущен с 2012 года. Последний релиз выпущен в мае 2015 года. Сопровождающим является Microsoft, а версия для PHP7 запланирована на начало следующего года.

Https://github.com/Azure/msphpsql/issues/58

Обновление:

Драйвер доступен для PHP до версии 7.1 даже для Linux сегодня (март 2017).

Https://github.com/Microsoft/msphpsql

 13
Author: kba, 2017-03-14 11:05:46

Для дальнейшего использования (протестировано в Windows 7 с Xampp и PHP 7.0.13):

  1. Загрузите и установите драйверы ODBC здесь: https://www.microsoft.com/en-US/download/details.aspx?id=36434

  2. Загрузите библиотеку DLL здесь (можно найти как 7.0., так и 7.1.): https://github.com/Microsoft/msphpsql/releases

  3. Откройте файл "php.ini" и найдите строку "extension_dir". Это подскажет вам, куда поместить Файлы DDL. Примечание: На Xampp это должно быть что-то вроде: "C:\xampp\php\ext"

enter image description here

  1. Поместите DLL-файлы, содержащиеся в Zip-архиве, в каталог расширения. Убедитесь, что выбрали правильную выберите правильную версию. Примечание : Сначала я пытался использовать версию x64, но это не сработало. Затем я заменил библиотеку DLL на версию x86, и она, наконец, заработала.

enter image description here

  1. Назад в вашем файле "php.ini" вам нужно добавить следующую строку: "расширение= php_pdo_sqlsrv_7_ts.dll". Примечание: Xampp использует безопасную для протектора версию.

enter image description here

  1. Обязательно перезапустите службу apache.

enter image description here

Пример кода для тестирования:

$db = "the name of your database"
$password = "password";
$server = "IP address or named pipe";
$user = "username"

try {

    $connection = new PDO(
        "sqlsrv:Server=" . $server . 
            ";Database=" . $db, 
        $password, 
        $user
    );

    $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $exception) {

    var_dump($exception);
}
 6
Author: Jonathan Parent Lévesque, 2017-02-02 19:41:27

Для записи прямая ссылка на библиотеки sql server находится здесь

Sqlsrvr для php 7

Является 32- и 64-разрядной версией как для ts, так и для nts

 1
Author: magallanes, 2016-03-19 11:14:49