Microsoft SQL Server Functions (PDO_SQLSRV)
Введение
PDO_SQLSRV is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to MS SQL Server (starting with SQL Server 2005) and SQL Azure databases.
Установка
The PDO_SQLSRV extension is enabled by adding appropriate DLL file to your PHP extension directory and the corresponding entry to the php.ini file. The PDO_SQLSRV download comes 8 driver files, four of which are for PDO support. If you are running non-thread-safe PHP (PHP 5.3), use the php_pdo_sqlsrv_53_nts.dll file. (You should use a non-thread-safe version if you are using IIS as your web server). If you are running thread-safe PHP, use the php_pdo_sqlsrv_53_ts.dll file. Similarly for PHP 5.4, use the php_pdo_sqlsrv_54_nts.dll or php_pdo_sqlsrv_54_ts.dll depending on whether your PHP installation is non-thread-safe or thread-safe.
The most recent version of the driver is available for download here: » SQLSRV 3.0 download. If you need support for PHP 5.2 and/or PHP compiled with VC6, use the 2.0 release of the driver: » SQLSRV 2.0 download.
For more information about system requirements, see » SQLSRV System Requirements.
The PDO_SQLSRV extension is only compatible with PHP running on Windows. For Linux, see ODBC and » Microsoft's SQL Server ODBC Driver for Linux.
Предопределенные константы
Перечисленные ниже константы определены
данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение
было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только
совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать
неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию
PDO::getAttribute() для получения атрибута PDO_ATTR_DRIVER_NAME
для проверки драйвера.
-
PDO::SQLSRV_TXN_READ_UNCOMMITTED
(integer) - This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Read Uncommitted.
-
PDO::SQLSRV_TXN_READ_COMMITTED
(integer) - This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Read Committed.
-
PDO::SQLSRV_TXN_REPEATABLE_READ
(integer) - This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Repeateable Read.
-
PDO::SQLSRV_TXN_SNAPSHOT
(integer) - This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Snapshot.
-
PDO::SQLSRV_TXN_SERIALIZABLE
(integer) - This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Serializable.
-
PDO::SQLSRV_ENCODING_BINARY
(integer) - Specifies that data is sent/retrieved as a raw byte stream to/from the server without performing encoding or translation. This constant can be passed to PDOStatement::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
-
PDO::SQLSRV_ENCODING_SYSTEM
(integer) - Specifies that data is sent/retrieved to/from the server as 8-bit characters as specified in the code page of the Windows locale that is set on the system. Any multi-byte characters or characters that do not map into this code page are substituted with a single byte question mark (?) character. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
-
PDO::SQLSRV_ENCODING_UTF8
(integer) - Specifies that data is sent/retrieved to/from the server in UTF-8 encoding. This is the default encoding. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
-
PDO::SQLSRV_ENCODING_DEFAULT
(integer) - Specifies that data is sent/retrieved to/from the server according to PDO::SQLSRV_ENCODING_SYSTEM if specified during connection. The connection's encoding is used if specified in a prepare statement. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
-
PDO::SQLSRV_ATTR_QUERY_TIMEOUT
(integer) - A non-negative integer representing the timeout period, in seconds. Zero (0) is the default and means no timeout. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, and PDO::prepare.
-
PDO::SQLSRV_ATTR_DIRECT_QUERY
(integer) - Indicates that a query should be executed directly, without being prepared. This constant can be passed to PDO::setAttribute, and PDO::prepare. For more information, see » Direct and Prepared Statement Execution.
Содержание
- PDO_SQLSRV DSN — Connecting to MS SQL Server and SQL Azure databases
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Уровни абстракции
- Объекты данных PHP
- CUBRID Functions (PDO_CUBRID)
- Microsoft SQL Server and Sybase Functions (PDO_DBLIB)
- Firebird Functions (PDO_FIREBIRD)
- IBM Functions (PDO_IBM)
- Informix Functions (PDO_INFORMIX)
- MySQL Functions (PDO_MYSQL)
- Microsoft SQL Server Functions (PDO_SQLSRV)
- Oracle Functions (PDO_OCI)
- ODBC and DB2 Functions (PDO_ODBC)
- PostgreSQL Functions (PDO_PGSQL)
- SQLite Functions (PDO_SQLITE)
- 4D Functions (PDO_4D)
Коментарии
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
SQLSRV 3.2 is now available from Microsoft that supports PHP 5.6
http://www.microsoft.com/en-us/download/details.aspx?id=20098
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.