- sqlsrv_connect
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Смотрите также
- Загрузка драйверов Майкрософт для PHP для SQL Server
- Перемещение файла драйвера в каталог расширения
- Загрузка драйвера при запуске PHP
- См. также:
- Установка драйвера SQL Server для PHP
- Требования к системе
- Установка драйверов
- Настройка драйверов
- Создание подключения к базе данных
- Ссылки для получения дополнительных сведений
sqlsrv_connect
Открывает соединение с базой данных Microsoft SQL Server. По умолчанию попытка подключения выполняется с использованием проверки подлинности Windows. Чтобы подключиться с использованием проверки подлинности SQL Server, включите «UID» и «PWD» в массив параметров подключения.
Список параметров
Имя сервера, к которому устанавливается соединение. Чтобы подключиться к определённому экземпляру, после имени сервера укажите обратную косую черту и имя экземпляра (например, serverName\sqlexpress).
Ассоциативный массив, определяющий параметры подключения к серверу. Если значения для ключей UID и PWD не указаны, будет предпринята попытка подключения с использованием проверки подлинности Windows. Полный список поддерживаемых ключей смотрите в разделе » Параметры подключения SQLSRV.
Возвращаемые значения
Ресурс подключения. Если соединение не может быть открыто, возвращается false .
Примеры
Пример #1 Подключение с использованием проверки подлинности Windows.
$serverName = «serverName\\sqlexpress» ; //serverName\instanceName
?php
// Поскольку UID и PWD не указаны в массиве $connectionInfo,
// будет предпринята попытка подключения с использованием проверки подлинности Windows.
$connectionInfo = array( «Database» => «dbName» );
$conn = sqlsrv_connect ( $serverName , $connectionInfo );
if( $conn ) echo «Соединение установлено.
» ;
>else echo «Соединение не установлено.
» ;
die( print_r ( sqlsrv_errors (), true ));
>
?>
Пример #2 Подключение с использованием имени пользователя и пароля.
$serverName = «serverName\\sqlexpress» ; //serverName\instanceName
$connectionInfo = array( «Database» => «dbName» , «UID» => «userName» , «PWD» => «password» );
$conn = sqlsrv_connect ( $serverName , $connectionInfo );
?php
if( $conn ) echo «Соединение установлено.
» ;
>else echo «Соединение не установлено.
» ;
die( print_r ( sqlsrv_errors (), true ));
>
?>
Пример #3 Подключение с использованием порта.
$serverName = «serverName\\sqlexpress, 1542» ; //serverName\instanceName, portNumber (по умолчанию 1433)
$connectionInfo = array( «Database» => «dbName» , «UID» => «userName» , «PWD» => «password» );
$conn = sqlsrv_connect ( $serverName , $connectionInfo );
?php
if( $conn ) echo «Соединение установлено.
» ;
>else echo «Соединение не установлено.
» ;
die( print_r ( sqlsrv_errors (), true ));
>
?>
Примечания
По умолчанию sqlsrv_connect() использует пул соединений для повышения производительности соединения. Чтобы отключить пул соединений (т.е. принудительно устанавливать новое соединение при каждом вызове), установите для параметра «ConnectionPooling» в массиве $connectionOptions значение 0 (или false ). Для получения дополнительной информации смотрите раздел » Пул соединений SQLSRV.
У модуля SQLSRV нет специальной функции для изменения базы данных после подключения. Целевая база данных указывается в массиве $connectionOptions, который передаётся в sqlsrv_connect. Чтобы изменить базу данных при открытом соединении, выполните следующий запрос «USE dbName» (например, sqlsrv_query($conn, «USE dbName»)).
Смотрите также
- sqlsrv_close() — Закрывает открытое соединение и освобождает ресурсы, связанные с этим соединением
- sqlsrv_errors() — Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV
- sqlsrv_query() — Подготавливает и выполняет запрос
Загрузка драйверов Майкрософт для PHP для SQL Server
Эта статья содержит инструкции по загрузке Драйверы Microsoft SQL Server для PHP в пространство процессов PHP.
Предварительно созданные драйверы для платформы можно загрузить на странице драйверов Майкрософт для PHP в SQL Server на сайте GitHub. Каждый пакет установки содержит файлы драйверов SQLSRV и PDO_SQLSRV в потоковых и отдельных вариантах. В Windows они также доступны в 32-разрядных и 64-разрядных версиях. Список файлов драйверов, содержащихся в каждом пакете, см. в статье System Requirements for the Microsoft Drivers for PHP for SQL Server (Системные требования драйверов Майкрософт для PHP для SQL Server). Файл драйвера должен соответствовать версии PHP, архитектуре и потоковости среды PHP.
В Linux и macOS драйверы можно также установить с помощью PECL, как описано в учебнике по установке.
Вы также можете создать драйверы из источника при разработке PHP или с помощью phpize . Если вы решили создать драйверы из источника, можно создать их статически в PHP, а не в качестве общих расширений, добавив —enable-sqlsrv=static —with-pdo_sqlsrv=static (в Linux и macOS) или —enable-sqlsrv=static —with-pdo-sqlsrv=static (в Windows) в команду ./configure при компиляции PHP. Дополнительные сведения о системе сборки PHP и phpize см. в документации по PHP.
Перемещение файла драйвера в каталог расширения
Файл драйвера должен размещаться в каталоге, где среда выполнения PHP сможет его найти. Проще всего разместить файл драйвера в каталоге расширений PHP по умолчанию. Чтобы найти каталог по умолчанию, запустите php -i | sls extension_dir в Windows или php -i | grep extension_dir в Linux/macOS. Если вы не используете каталог расширений по умолчанию, укажите каталог в файле конфигурации PHP (php.ini) с помощью параметра extension_dir. Например, в Windows, если вы поместили файл драйвера в каталог c:\php\ext , добавьте следующую строку в файл php.ini:
Загрузка драйвера при запуске PHP
Чтобы загружать драйвер SQLSRV при запуске PHP, сначала поместите файл драйвера в свой каталог расширений. Затем выполните следующие действия:
- Чтобы включить драйвер SQLSRV, добавьте в файле php.ini следующую строку в раздел расширения и измените имя файла соответствующим образом: В Windows:
extension=php_sqlsrv_82_ts.dll
В Linux, если вы скачали предварительно созданные двоичные файлы для вашего дистрибутива, запустите следующий код:
extension=php_sqlsrv_82_nts.so
Если вы выполнили компиляцию двоичного файла SQLSRV из источника или с помощью PECL, файл получит имя sqlsrv.so:
В Linux, если вы установили PHP с помощью диспетчера пакетов системы, PDO, скорее всего, установится как динамически загруженное расширение с именем pdo.so. Расширение PDO нужно загрузить перед расширением PDO_SQLSRV, иначе загрузка завершится ошибкой. Расширения обычно загружаются с использованием отдельных INI-файлов, и эти файлы считываются после файла php.ini. Таким образом, если файл pdo.so загружается с использованием собственного INI-файла, то после PDO понадобится отдельный файл, загружающий драйвер PDO_SQLSRV. Чтобы узнать, в каком каталоге находятся INI-файлы, относящиеся к расширению, запустите php —ini и обратите внимание на каталог, указанный в разделе Scan for additional .ini files in: . Найдите файл, загружающий pdo.so. Возможно, он имеет числовой префикс, например 10-pdo.ini. Числовой префикс указывает порядок загрузки INI-файлов. Файлы, не имеющие числового префикса, загружаются в алфавитном порядке. Создайте файл для загрузки файла драйвера PDO_SQLSRV с именем 30-pdo_sqlsrv.ini (подойдет любое число, большее, чем pdo.ini) или pdo_sqlsrv.ini (если у pdo.ini нет числового префикса) и добавьте в него следующую строку, изменив имя файла на подходящее.
extension=php_pdo_sqlsrv_82_nts.so
Как и в случае с SQLSRV, если вы выполнили компиляцию двоичного файла PDO_SQLSRV из источника или с помощью PECL, файл получит имя pdo_sqlsrv.so:
Чтобы проверить, загружен ли драйвер, запустите сценарий, который вызывает phpinfo().
Дополнительные сведения о директивах php.ini см. в статье Описание встроенных директив php.ini.
См. также:
Getting Started with the Microsoft Drivers for PHP for SQL Server (Начало работы с драйверами Майкрософт для PHP для SQL Server)
Установка драйвера SQL Server для PHP
Драйверы Майкрософт для PHP для SQL Server предназначены для обеспечения надежной и масштабируемой интеграции с SQL Server для приложений PHP на платформах Windows, Linux и macOS. Драйверы — это расширения PHP, которые позволяют выполнять чтение и запись в SQL Server базах данных во всех выпусках SQL Server (включая выпуски Express) в скриптах PHP. Доступны два драйвера: драйвер SQLSRV предоставляет процедурный интерфейс для взаимодействия с SQL Server. Драйвер PDO_SQLSRV реализует объектно-ориентированный интерфейс PDO PHP для работы с базами данных.
Api драйверов включает поддержку проверки подлинности Active Directory, транзакций, привязки параметров, потоковой передачи, доступа к метаданным, обработки данных в Юникоде и обработки ошибок. Драйверы используют Microsoft ODBC Driver для SQL Server для взаимодействия с SQL Server. Драйверы также поддерживают Microsoft SQL Azure Database, позволяя разработчикам создавать приложения PHP с реляционными возможностями с помощью SQL Azure Database.
Драйверы Майкрософт для PHP для скачивания SQL Server доступны всем пользователям SQL Server. Выпуски и исходный код драйверов доступны на странице проекта GitHub. Полная документация по драйверам доступна в Microsoft Learn. Ниже приведен краткий обзор установки и настройки в Windows и IIS.
Требования к системе
Полные сведения о требованиях к системе для всех поддерживаемых версий драйвера можно найти на странице системных требований. Требуется наличие следующего программного обеспечения:
- На компьютере клиента выполните следующее.
- Поддерживаемая операционная система Windows, Linux или macOS
- Поддерживаемая версия PHP
- Поддерживаемая версия Драйвера Microsoft ODBC для SQL Server
- Веб-сервер, настроенный для запуска PHP
- Поддерживаемая версия базы данных SQL Server или Azure SQL
Установка драйверов
Драйверы Майкрософт для PHP для SQL Server можно установить с помощью установщика веб-платформы. Чтобы скачать и установить драйверы вручную, выполните следующие действия.
- Скачайте и запустите пакет установки по соответствующей ссылке на странице скачивания.
- Введите каталог для извлечения пакета при появлении запроса.
- Откройте каталог, выбранный на шаге 3, и скопируйте необходимые библиотеки DLL в каталог расширения PHP. Имена файлов указывают, для какой версии PHP, потока и архитектуры предназначен каждый dll-файл. Например, php_sqlsrv_73_ts_x64.dll является 64-разрядным драйвером SQLSRV для потокобезопасного (ts) PHP 7.3.
- Скачайте и установите Microsoft ODBC Driver для SQL Server по соответствующей ссылке на странице загрузки ODBC.
- Измените php.ini файл, добавив в раздел следующие строки Extensions :
Настройка драйверов
- Получите текущие параметры конфигурации для драйвера SQLSRV с помощью sqlsrv_get_config функции или для драйвера PDO_SQLSRV с помощью PDO::getAttribute функции .
- Измените параметры конфигурации для драйвера SQLSRV с помощью sqlsrv_configure функции или для драйвера PDO_SQLSRV с помощью PDO::setAttribute функции .
- Убедитесь, что драйверы загружены, и проверьте параметры конфигурации, выполнив скрипт, который вызывает функцию phpinfo():
- Откройте текстовый файл и скопируйте в него следующий код:
- Сохраните файл как info.php в корневом каталоге IIS.
- Откройте браузер и перейдите на страницу http://localhost/info.php .
- Прокрутите страницу вниз, чтобы найти sqlsrv разделы и pdo_sqlsrv . Убедитесь, что драйверы загружены, а для параметров конфигурации заданы значения по умолчанию (см. рис. 1). Рис. 1. страница SQL Server параметров конфигурации
Создание подключения к базе данных
При использовании драйвера sqlsrv_connect() SQLSRV функция используется для установления соединения с сервером. При использовании драйвера PDO::__construct PDO_SQLSRV функция используется для установления соединения с сервером.
Подключения можно устанавливать с помощью проверка подлинности Windows, проверки подлинности SQL Server или проверки подлинности Azure Active Directory. По умолчанию используется проверка подлинности Windows. В большинстве сценариев это означает, что удостоверение процесса или поток веб-сервера (если веб-сервер использует олицетворение) используется для подключения к серверу, а не удостоверение пользователя.