Функции модуля PDO_SQLSRV для Microsoft SQL Server
Введение
PDO_SQLSRV — это драйвер, реализующий интерфейс PHP
Data Objects (PDO) для получения доступа из PHP к базам данных MS SQL Server
(начиная с версии SQL Server 2005) и SQL Azure.
Установка
Последняя версия драйвера доступна для скачивания по ссылке:
» Загрузка SQLSRV.
Исходный код драйвера размещён в » публичном репозитории.
За подробностями о системных требованиях обратитесь к разделу
» Системные требования SQLSRV.
В Windows модуль PDO_SQLSRV включается путём загрузки и добавления необходимых DLL-файлов
в каталог модулей PHP и добавления в файл php.ini записи, которая загрузит модуль.
В Linux и macOS модуль PDO_SQLSRV можно установить из библиотеки » PECL.
Подробности смотрите в » руководстве по установке.
Предопределённые константы
Драйвер
определяет перечисленные ниже константы, которые доступны только тогда, когда PHP собрали
с поддержкой этого модуля, или модуль динамически загрузили во время исполнения кода.
Зависимые от драйвера константы разрешно использовать только совместно с этим драйвером.
Атрибуты одного драйвера с другим драйвером ведут себя неожиданно. Для проверки названия
драйвера, которое содержит атрибут PDO::ATTR_DRIVER_NAME
, вызывают
метод PDO::getAttribute(), если код запускается с несколькими драйверами.
-
PDO::SQLSRV_TXN_READ_UNCOMMITTED
(int)
-
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN.
Устанавливает уровень изоляции транзакций для соединения в значение Read Uncommitted.
-
PDO::SQLSRV_TXN_READ_COMMITTED
(int)
-
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN.
Устанавливает уровень изоляции транзакций для соединения в значение Read Committed.
-
PDO::SQLSRV_TXN_REPEATABLE_READ
(int)
-
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN.
Устанавливает уровень изоляции транзакций для соединения в значение Repeateable Read.
-
PDO::SQLSRV_TXN_SNAPSHOT
(int)
-
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN.
Устанавливает уровень изоляции транзакций для соединения в значение Snapshot.
-
PDO::SQLSRV_TXN_SERIALIZABLE
(int)
-
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN.
Устанавливает уровень изоляции транзакций для соединения в значение Serializable.
-
PDO::SQLSRV_ENCODING_BINARY
(int)
-
Определяет, что данные отправляются/получаются в виде потока байтов к/от сервера
без выполнения преобразования кодировки или другого преобразования. Константа может
быть передана в функции PDOStatement::setAttribute, PDO::prepare,
PDOStatement::bindColumn и PDOStatement::bindParam.
-
PDO::SQLSRV_ENCODING_SYSTEM
(int)
-
Определяет, что данные отправляются/получаются к/от сервера в
8ми-битной кодировке локали Windows, установленной в системе.
Все мультибайтовые символы и символы, не преобразуемые в данную кодировку, заменяются
символом вопроса (?). Константа может
быть передана в функции PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare,
PDOStatement::bindColumn и PDOStatement::bindParam.
-
PDO::SQLSRV_ENCODING_UTF8
(int)
-
Определяет, что данные отправляются/получаются к/от сервера в кодировке
UTF-8. Константа может быть передана в функции
PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare,
PDOStatement::bindColumn и PDOStatement::bindParam.
-
PDO::SQLSRV_ENCODING_DEFAULT
(int)
-
Определяет, что данные отправляются/получаются к/от сервера согласно
значению PDO::SQLSRV_ENCODING_SYSTEM, указанному при подключении. Для подключения
может использоваться кодировка, указанная при подготовке выражения.
Константа может быть передана в функции PDOStatement::setAttribute,
PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
-
PDO::SQLSRV_ATTR_QUERY_TIMEOUT
(int)
-
Неотрицательное целое число, отражающее время ожидания в секундах. Ноль (0) -
это значение по умолчанию, означающее, что время ожидания не учитывается.
Константа может быть передана в функции
PDOStatement::setAttribute, PDO::setAttribute и PDO::prepare.
-
PDO::SQLSRV_ATTR_DIRECT_QUERY
(int)
-
Показывает, что запрос должен быть немедленно выполнен, без подготовки выражения.
Константа может быть передана в функции PDO::setAttribute и PDO::prepare.
За подробностями обратитесь к разделу документации
» Немедленное выполнение выражений и выполнение подготовленных выражений.
Содержание
ian at helastel dot com ¶7 years ago
An updated driver compatible with both PHP 7.0 and Linux is available on the PHP-7.0-Linux branch of https://github.com/Microsoft/msphpsql/
This is more up to date and supports some additional features over the ODBC / DBLIB drivers.
It is currently considered an 'Early Technical Preview' and hence has some limitations, but in my experience it has been stable.
John P ¶9 years ago
As of 12/12/2014, Microsoft has officially released Version 3.1.
Support for 5.5 has 4 drivers
php_pdo_sqlsrv_55_nts.dll
php_pdo_sqlsrv_55_ts.dll
php_sqlsrv_55_nts.dll
php_sqlsrv_55_ts.dll
Note: Version 3.1 now supports PHP 5.5 and requires Microsoft ODBC Driver 11 (or higher)
You can downlod the new driver from
http://www.microsoft.com/en-us/download/details.aspx?id=20098
fleduc dot perso at gmail dot com ¶6 years ago
Watch out!
If you use PDO SQLSRV on windows 7, using 32 bit php on XAMMP, you might encounter driver problems : "This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server"
The reason, Microsoft 32-bit ODBC driver doesn't install properly on 64-bit Windows 7.
Check the solution to PDO SQLSRV driver problem here in StackOverflow
https://stackoverflow.com/a/46245990/1330248