- Загрузка драйверов Майкрософт для PHP для SQL Server
- Скачивание
- Сведения о версии
- Заметки о выпуске
- Предыдущие выпуски
- Шаг 3. Подтверждение концепции: подключение к SQL с помощью PHP
- Шаг 2. Выполнение запроса
- Шаг 3. Вставка строки
- Шаг 4. Откат транзакции
- Microsoft SQL Server Functions (PDO_SQLSRV)
- Installation
- Predefined Constants
- Table of Contents
- Установка модуля PHP-SQLSRV для работы с Microsoft SQL Server в Centos 7
- Установка необходимых компонентов
- Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров
- Похожие записи
- Обновление PostgreSQL в Linux
- Авторизация в Prometheus и Alertmanager через OAuth2 Proxy и Keycloak
- Установка Seafile 7.1.0 + Nginx + Percona на Centos 7
- [РЕШЕНО] GPT структура разделов при авто установке (preseed) Debian 11 / Debian 10
- Установка Ansible Semaphore в Rocky Linux
- Установка и настройка NFS сервера / клиента в Centos 7
Загрузка драйверов Майкрософт для PHP для SQL Server
Драйвер SQL Server для PHP обеспечивает надежную и масштабируемую интеграцию приложений PHP с сервером SQL Server. Эти драйверы представляют собой расширения для PHP, которые позволяют считывать и записывать данные SQL Server из скриптов PHP. Драйверы предоставляют интерфейсы для доступа к данным в Базе данных SQL Azure и во всех выпусках SQL Server 2012 и более поздних версий (включая экспресс-выпуски). Драйвер использует функции PHP (в том числе потоки) для чтения и записи крупных объектов.
В Linux и macOS драйверы для PHP легко скачать и установить с помощью PECL. Подробнее см. учебник по установке для Linux и Mac. Если необходимо скачать и установить драйверы для PHP в Linux и macOS вручную, пакеты для этих платформ можно найти в тегах выпуска GitHub.
Скачивание
Драйверы Майкрософт версии 5.11 для PHP для SQL Server — это последняя общедоступная (GA) версия.
Убедитесь, что у вас установлена последняя версия драйвера ODBC, чтобы обеспечить оптимальную производительность и безопасность. Сведения о скачивании см. в разделе Скачивание драйвера ODBC для SQL Server.
Сведения о версии
Если вы хотите оставить отзыв, лучше всего обратиться к команде Microsoft Drivers Майкрософт для PHP для SQL Server, создав проблему в репозитории GitHub.
Заметки о выпуске
См. сведения о новых возможностях в этом выпуске в заметках о выпуске SSMS.
Предыдущие выпуски
Эта страница описывает возможности только последней версии Microsoft Drivers для PHP. Чтобы скачать предыдущие версии, см. страницу с предыдущими выпусками Microsoft Drivers для PHP для SQL Server.
Шаг 3. Подтверждение концепции: подключение к SQL с помощью PHP
Эта функция OpenConnection вызывается перед выполнением всех последующих функций.
function OpenConnection() < $serverName = "tcp:myserver.database.windows.net,1433"; $connectionOptions = array("Database"=>"AdventureWorks", "Uid"=>"MyUser", "PWD"=>"MyPassword"); $conn = sqlsrv_connect($serverName, $connectionOptions); if($conn == false) die(FormatErrors(sqlsrv_errors())); return $conn; >
Шаг 2. Выполнение запроса
Функция sqlsrv_query может использоваться для извлечения результирующего набора из запроса к базе данных SQL. Эта функция фактически принимает любой запрос и объект подключения, а затем возвращает результирующий набор для итеративного перебора с помощью sqlsrv_fetch_array().
function ReadData() < try < $conn = OpenConnection(); $tsql = "SELECT [CompanyName] FROM SalesLT.Customer"; $getProducts = sqlsrv_query($conn, $tsql); if ($getProducts == FALSE) die(FormatErrors(sqlsrv_errors())); $productCount = 0; while($row = sqlsrv_fetch_array($getProducts, SQLSRV_FETCH_ASSOC)) < echo($row['CompanyName']); echo("
"); $productCount++; > sqlsrv_free_stmt($getProducts); sqlsrv_close($conn); > catch(Exception $e) < echo("Error!"); >>
Шаг 3. Вставка строки
В этом примере показано, как безопасно выполнить инструкцию INSERT и передать параметры. Значения параметров защищают приложение от внедрения кода SQL.
function InsertData() < try < $conn = OpenConnection(); $tsql = "INSERT SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT" . " INSERTED.ProductID VALUES ('SQL Server 1', 'SQL Server 2', 0, 0, getdate())"; //Insert query $insertReview = sqlsrv_query($conn, $tsql); if($insertReview == FALSE) die(FormatErrors( sqlsrv_errors())); echo "Product Key inserted is :"; while($row = sqlsrv_fetch_array($insertReview, SQLSRV_FETCH_ASSOC)) < echo($row['ProductID']); >sqlsrv_free_stmt($insertReview); sqlsrv_close($conn); > catch(Exception $e) < echo("Error!"); >>
Шаг 4. Откат транзакции
Этот пример кода демонстрирует использование транзакций, в которых можно:
- начать транзакцию;
- вставить строку данных, обновить другую строку данных;
- зафиксировать транзакцию, если запросы на вставку и обновление выполнены успешно, или откатить транзакцию, если один из запросов вызвал ошибку.
function Transactions() < try < $conn = OpenConnection(); if (sqlsrv_begin_transaction($conn) == FALSE) die(FormatErrors(sqlsrv_errors())); $tsql1 = "INSERT INTO SalesLT.SalesOrderDetail (SalesOrderID,OrderQty,ProductID,UnitPrice) VALUES (71774, 22, 709, 33)"; $stmt1 = sqlsrv_query($conn, $tsql1); /* Set up and execute the second query. */ $tsql2 = "UPDATE SalesLT.SalesOrderDetail SET OrderQty = (OrderQty + 1) WHERE ProductID = 709"; $stmt2 = sqlsrv_query( $conn, $tsql2); /* If both queries were successful, commit the transaction. */ /* Otherwise, rollback the transaction. */ if($stmt1 && $stmt2) < sqlsrv_commit($conn); echo("Transaction was commited"); >else < sqlsrv_rollback($conn); echo "Transaction was rolled back.\n"; >/* Free statement and connection resources. */ sqlsrv_free_stmt( $stmt1); sqlsrv_free_stmt( $stmt2); > catch(Exception $e) < echo("Error!"); >>
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.
Installation
The most recent version of the driver is available for download here: » SQLSRV download. The driver sources are hosted in a » public repository.
For more information about system requirements, see » SQLSRV System Requirements.
On Windows the PDO_SQLSRV extension is enabled by downloading and adding appropriate DLL files to your PHP extension directory and the corresponding entry to the php.ini file.
On Linux and macOS, the PDO_SQLSRV extension can be installed using » PECL. See the » installation tutorial for details.
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 ( int ) 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 ( int ) 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 ( int ) 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 ( int ) 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 ( int ) 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 ( int ) 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 ( int ) 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 ( int ) 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 ( int ) 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 ( int ) 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 ( int ) 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.
Table of Contents
Установка модуля PHP-SQLSRV для работы с Microsoft SQL Server в Centos 7
PDO_SQLSRV – это драйвер, реализующий интерфейс PHP Data Objects (PDO) для получения доступа из PHP к базам данных MS SQL Server (начиная с версии SQL Server 2005) и SQL Azure. Установка PHP 7.x в Centos 7 была рассмотрена раньше
Установка необходимых компонентов
[root@localhost]# curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров
Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.
[root@localhost]# yum remove unixODBC-utf16 unixODBC-utf16-devel
[root@localhost]# ACCEPT_EULA=Y yum install msodbcsql17 [root@localhost]# ACCEPT_EULA=Y yum install mssql-tools
[root@localhost]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile [root@localhost]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc [root@localhost]# source ~/.bashrc
[root@localhost]# yum install unixODBC-devel
[root@localhost]# yum install php-sqlsrv
[root@localhost]# systemctl restart nginx [root@localhost]# systemctl restart httpd
У блога появился новый хостинг от компании Selectel.
Нашли интересную или полезную информацию в блоге? Хотели бы видеть на нем еще больше полезных статей? Поддержи автора рублем. Если вы размещаете материалы этого сайта в своем блоге, соц. сетях, и т.д., убедительная просьба публиковать обратную ссылку на оригинал.
Похожие записи
Обновление PostgreSQL в Linux
PostgreSQL upgrade PostgreSQL — свободная объектно-реляционная система управления базами данных, наиболее развитая из открытых СУБД в мире. Базируется на языке SQL Допустим на сервере установлена PostgeSQL 9.6, требуется обновить её на более новую версию (например при обновлении Zabbix с 3.2 до 6.2) Установим PostgeSQL 15 из репозитория $ sudo apt -y install gnupg2
$ sudo sh -c ‘echo “deb http://apt.postgresql.org/pub/repos/apt $(lsb_release …
Авторизация в Prometheus и Alertmanager через OAuth2 Proxy и Keycloak
Prometheus, Alertmanager + OAuth2 Proxy, Keycloak OAuth2 Proxy — это обратный прокси-сервер, который находится перед вашим приложением и обеспечивает аутентификацию OpenID Connect / OAuth 2.0 с использованием провайдеров идентификации (Google, GitHub, Keycloak и других). Установка Keycloak была рассмотрена в одной из предыдущей статей Установку Prometheus, Alertmanager и OAuth2 Proxy произвожу на одной ВМ под управлением Rocky Linux 9, …
Установка Seafile 7.1.0 + Nginx + Percona на Centos 7
Seafile + Nginx + Percona Seafile – это кроссплатформенная система программного обеспечения для размещения файлов с открытым исходным кодом. Файлы хранятся на центральном сервере и могут быть синхронизированы с персональными компьютерами и мобильными устройствами через приложения. Цикл статей по настройке файлового хранилища Seafile Установка Seafile 7.1.0 + Nginx + Percona на Centos 7
Установка файлового хранилища Seafile на …
[РЕШЕНО] GPT структура разделов при авто установке (preseed) Debian 11 / Debian 10
gpt partition / preseed GPT — более новая и продвинутая структура разделов.При использовании MS-DOS partition table (MBR) на жёстком диске может быть сформировано 3 основных раздела (primary) и один дополнительный (extended). Загружаться можно только в режиме эмуляции BIOS. Ограничение на емкость диска 2 Tb.При использовании GUID partition table (GPT) на жёстком диске может быть сформировано 128 …
Установка Ansible Semaphore в Rocky Linux
Ansible Semaphore Ansible Semaphore — это веб-интерфейс для запуска Ansible-плейбуков с расширенными возможностями. Альтернатива Ansible Tower с открытым исходным кодом. Он позволяет запускать и управлять Ansible Tasks из веб-интерфейса. Для работы Ansible Semaphore требуется СУБД: MariaDB, BoltDB либо PostgreSQL. Установка MariaDB Добавляем репозиторий MariaDB $ curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
$ sudo bash mariadb_repo_setup Устанавливаем СУБД $ sudo dnf -y install MariaDB-server MariaDB-client MariaDB-backup Запускаем …
Установка и настройка NFS сервера / клиента в Centos 7
NFS сервер / клиент Network File System (NFS) — протокол сетевого доступа к файловым системам, первоначально разработан Sun Microsystems в 1984 году. За основу взят протокол вызова удалённых процедур. Позволяет подключать (монтировать) удалённые файловые системы через сеть.NFS предоставляет клиентам прозрачный доступ к файлам и файловой системе сервера. В отличие от FTP, протокол NFS осуществляет доступ только к тем частям файла, к которым обратился процесс, и основное …