Php pdo sqlsrv php ini

Loading the Microsoft Drivers for PHP for SQL Server

This page provides instructions for loading the Microsoft Drivers for PHP for SQL Server into the PHP process space.

You can download the prebuilt drivers for your platform from the Microsoft Drivers for PHP for SQL Server GitHub project page. Each installation package contains SQLSRV and PDO_SQLSRV driver files in threaded and non-threaded variants. On Windows, they are also available in 32-bit and 64-bit variants. See System Requirements for the Microsoft Drivers for PHP for SQL Server for a list of the driver files that are contained in each package. The driver file must match the PHP version, architecture, and threadedness of your PHP environment.

On Linux and macOS, the drivers can alternatively be installed using PECL, as found in the installation tutorial.

You can also build the drivers from source either when building PHP or by using phpize . If you choose to build the drivers from source, you have the option of building them statically into PHP instead of building them as shared extensions by adding —enable-sqlsrv=static —with-pdo_sqlsrv=static (on Linux and macOS) or —enable-sqlsrv=static —with-pdo-sqlsrv=static (on Windows) to the ./configure command when building PHP. For more information on the PHP build system and phpize , see the PHP documentation.

Читайте также:  Example Domain

Moving the Driver File into Your Extension Directory

The driver file must be located in a directory where the PHP runtime can find it. It is easiest to put the driver file in your default PHP extension directory — to find the default directory, run php -i | sls extension_dir on Windows or php -i | grep extension_dir on Linux/macOS. If you are not using the default extension directory, specify a directory in the PHP configuration file (php.ini), using the extension_dir option. For example, on Windows, if you have put the driver file in your c:\php\ext directory, add the following line to php.ini:

Loading the Driver at PHP Startup

To load the SQLSRV driver when PHP is started, first move a driver file into your extension directory. Then, follow these steps:

    To enable the SQLSRV driver, modify php.ini by adding the following line to the extension section, changing the filename as appropriate: On Windows:

extension=php_sqlsrv_82_ts.dll 
extension=php_sqlsrv_82_nts.so 

On Linux, if you have installed PHP using your system’s package manager, PDO is probably installed as a dynamically loaded extension named pdo.so. The PDO extension must be loaded before the PDO_SQLSRV extension, or loading will fail. Extensions are usually loaded using individual .ini files, and these files are read after php.ini. Therefore, if pdo.so is loaded through its own .ini file, a separate file loading the PDO_SQLSRV driver after PDO is required. To find out which directory the extension-specific .ini files are located, run php —ini and note the directory listed under Scan for additional .ini files in: . Find the file that loads pdo.so. It is likely prefixed by a number, such as 10-pdo.ini. The numerical prefix indicates the loading order of the .ini files, while files that do not have a numerical prefix are loaded alphabetically. Create a file to load the PDO_SQLSRV driver file called either 30-pdo_sqlsrv.ini (any number larger than the one that prefixes pdo.ini works) or pdo_sqlsrv.ini (if pdo.ini is not prefixed by a number), and add the following line to it, changing the filename as appropriate:

extension=php_pdo_sqlsrv_82_nts.so 

As with SQLSRV, if you have compiled the PDO_SQLSRV binary from source or with PECL, it will instead be named pdo_sqlsrv.so:

To determine whether the driver has been successfully loaded, run a script that calls phpinfo().

For more information about php.ini directives, see Description of core php.ini directives.

Источник

Функции модуля 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. За подробностями обратитесь к разделу документации » Немедленное выполнение выражений и выполнение подготовленных выражений.

Источник

How to connect to SQL Server using PHP (Xampp) and PDO driver in Windows

In this post, I would like to demonstrate how to connect to SQL Server using PHP (Xampp) and PDO driver on Windows. Many people find it difficult to install and configure the drivers due to small technical details that go unnoticed and make it impossible to connect PHP to the SQL Server database.

The first step to getting this connection is download Microsoft® ODBC Driver 18.2.1.1 for SQL Server® to your machine and perform driver installation.

The next step is to view the information of your environment. To do this, create a file called phpinfo.php in the root of your PHP web server (default directory is C: \ xampp \ htdocs), with the content below:

After viewing this file in your web browser (http: //localhost/phpinfo.php), you should see a screen like this:

In this screen, we need to identify the following environment variables:

  • PHP version (in this case, 7.1.1)
  • PHP architecture (in the example case, x86)
  • Configuration File Location (php.ini)
  • Check if PHP build version is thread safe (TS) or non thread safe (NTS) (in this example, it’s TS)

After identifying this information, let’s now download Microsoft Drivers for PHP for SQL Server, according to your version of PHP:

Relationship between driver version and PHP version

Driver Version PHP version Driver Download
5.11.0-beta1 PHP 7.4 to PHP 8.2 Download
5.10.1 PHP 7.4 to PHP 8.1 Download
5.9 PHP 7.3 to PHP 8.0 Download
5.8 PHP 7.2 to PHP 7.4 Download
4.3 PHP 7.0 and PHP 7.1 Download
4.0 PHP 7.0 Download
3.2 PHP 5.6.4 + or PHP 5.5.16 + or PHP 5.4.32 Download
3.1 PHP 5.5.16 + or PHP 5.4.32 Download
3.0 PHP 5.4.32 or PHP 5.3.0 Download
2.0 PHP 5.3.0 or PHP 5.2.4 or PHP 5.2.13 Download

Relationship between driver version and ODBC driver version

Driver Version ODBC Driver or SQL Server Native Client Driver Version
5.8 or above Microsoft ODBC 17.10.3 Driver for SQL Server
ou Microsoft ODBC 18.2.1.1 Driver for SQL Server
4.3 Microsoft ODBC 11 Driver for SQL Server
ou Microsoft ODBC 13.1 Driver for SQL Server
4.0 Microsoft ODBC 11 Driver for SQL Server
ou Microsoft ODBC 13 Driver for SQL Server
3.2 or 3.1 Microsoft ODBC 11 Driver for SQL Server
3.0 SQL Server 2012 Feature Pack
2.0 Microsoft SQL Server 2008 R2 Native Client 32 bits (X86)
ou Microsoft SQL Server 2008 R2 Native Client 64 bits (x64)

Relationship between driver version and database version

Driver Version Database Version
4.3 SQL Server 2008 R2 and Above
4.0 SQL Server 2008 and above
3.1 SQL Server 2008 and above
2.0 and 3.0 SQL Server 2005 and above

Relationship between driver version and Windows version

Driver Version Operating System Version
5.11 Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows 8
Windows 8.1
Windows 10
Windows 11

7 CentOS
Ubuntu 20.04, 20.10 & 21.04, 21.10
Debian 9, 10 & 11
Red Hat Enterprise Linux 7 & 8
SUSE 12 & 15

7 CentOS
Ubuntu 20.04, 20.10, 21.04 & 21.10
Debian 9, 10 & 11
Red Hat Enterprise Linux 7 & 8
SUSE 12 & 15

7 CentOS
Ubuntu 16.04, 20.04 & 20.10
Debian 9 & 10
Red Hat Enterprise Linux 7 & 8
SUSE 12 & 15

7 CentOS
Ubuntu 16.04 & 19.10
Debian 8 & 9 & 10
Red Hat Enterprise Linux 7 & 8
SUSE 12 & 15

After identifying the correct driver version according to your version of PHP, SQL Server, and Operating System, download the indicated driver and choose a folder to extract the files to during installation.

After that, copy all the files that were installed to the directory. php \ ext on your Xampp installation (default directory is C: \ xampp \ php \ ext)

If you do not know the path of your configuration file (the default path is C: \ xampp \ php \ php.ini), in the phpinfo () screen shown above, you can identify the correct path of your php file. ini looking for Loaded Configuration File

After copying all files, edit the php.ini file from your installation and add the following records:
extension=php_pdo_sqlsrv_71_ts_x86.dll
extension=php_sqlsrv_71_ts_x86.dll

Remembering that the name of the DLL’s varies according to the version of PHP (71, 70, 54, etc.), Thread-safe (TS or NTS) and architecture (X86 or X64) and must ALWAYS be the same as the name of the files you downloaded and copied it to the php \ ext directory.

Once you have edited the php.ini file, simply restart Apache for the changes to take effect, as shown below:

Open the phpinfo.php file (http: //localhost/phpinfo.php) and see if the driver has now been loaded:

If it is the same as print, it means that the driver is installed and ready to use!

Connection Test Script

Источник

Оцените статью