Installation
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.
Predefined Constants
The constants below are defined by
this driver, and will only be available when the extension has been either
compiled into PHP or dynamically loaded at runtime. In addition, these
driver-specific constants should only be used if you are using this driver.
Using driver-specific attributes with another driver may result in
unexpected behaviour. PDO::getAttribute() may be used to
obtain the PDO_ATTR_DRIVER_NAME
attribute to check the
driver, if your code can run against multiple drivers.
-
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.