Функции модуля 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::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME
для проверки драйвера.
-
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 ¶6 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 ¶8 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 ¶5 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