- Установка драйвера SQL Server для PHP
- Требования к системе
- Установка драйверов
- Настройка драйверов
- Создание подключения к базе данных
- Ссылки для получения дополнительных сведений
- Настройка в Linux подключения к MariaDB из PHP с помощью ODBC
- ODBC connector
- Установка и подготовка к работе СУБД
- Установка и настройка ODBC
- Настройка php
- odbc_connect
- PDO
- Проверка запроса
- Возможные ошибки
- Call to undefined function odbc_connect()
- Читайте также
Установка драйвера 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 параметров конфигурации
- ODBC — произвольное название для нашего подключения.
- Driver — драйвер, который мы будем использовать. Его мы описали в файле /etc/odbcinst.ini.
- USER — пользователь, под которым будем подключаться к базе. Используем данные для ранее созданной учетной записи в mariadb.
- PASSWORD — пароль для созданного ранее пользователя, под которым мы будем подключаться к базе.
- Server — сервер баз данных. В нашем примере локальный сервер.
- Database — имя созданной базы данных.
- Port — порт, на котором слушает сервер. 3306 используется по умолчанию для MariaDB.
- ODBC — название для нашего DSN.
- odbc_user — имя пользователя для подключения к базе данных.
- odbc_password — пароль для подключения к базе.
- odbc:ODBC — способ соединения с базой и название для нашего DSN.
- odbc_user — имя пользователя для подключения к базе данных.
- odbc_password — пароль для подключения к базе.
Создание подключения к базе данных
При использовании драйвера sqlsrv_connect() SQLSRV функция используется для установления соединения с сервером. При использовании драйвера PDO::__construct PDO_SQLSRV функция используется для установления соединения с сервером.
Подключения можно устанавливать с помощью проверка подлинности Windows, проверки подлинности SQL Server или проверки подлинности Azure Active Directory. По умолчанию используется проверка подлинности Windows. В большинстве сценариев это означает, что удостоверение процесса или поток веб-сервера (если веб-сервер использует олицетворение) используется для подключения к серверу, а не удостоверение пользователя.
Ссылки для получения дополнительных сведений
Настройка в Linux подключения к MariaDB из PHP с помощью ODBC
Опубликовано: 01.12.2020
Использование ODBC в PHP позволит делать SQL-запросы независимо от типа СУБД — это может быть MySQL/MariaDB, MS SQL, Sybase, Oracle, PostgreSQL и так далее. Мы рассмотрим подключение к MariaDB. Предложенная инструкция протестирована на Linux Ubuntu и CentOS. Наши действия разобьем по шагам:
ODBC connector
Для начала мы должны установить ODBC connector. Нам понадобиться скачать на наш сервер архив, поэтому сначала инсталлируем wget. а) на CentOS / Red Hat:
Открываем браузер и заходим на страницу загрузки коннекторов MariaDB и выбираем ODBC connector, а также нашу операционную систему, например: * в данном случае мы загрузим коннектор для CentOS 8. Ниже на этой же страницы мы увидим ссылку на скачивание нужного нам коннектора. Копируем данную ссылку: С помощью wget и скопированной ссылки загружаем на сервер коннектор:
Установка и подготовка к работе СУБД
Для проверки настройки нам нужен сервер баз данных. Если его нет, то установим mariadb-server на тот же сервер, где и развернули ODBC. а) для CentOS / Red Hat:
* для наших тестов мы создали базу с названием my_db. Дадим права на подключение и работу с созданной базой данных:
* данной командой мы разрешили доступ к базе my_db пользователю odbc_user, который будет подключаться с локального компьютера и паролем odbc_password. Подключаемся к созданной базе данных:
> CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(512) NOT NULL,
`rights` varchar(64) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
* наша созданная таблица будет состоять из 3 столбцов — id, name и rights. Добавим 3 строки в нашу таблицу:
> INSERT INTO users (`name`, `rights`) VALUES (‘Дмитрий’, ‘admin’), (‘Оля’, ‘superuser’), (‘Антон’ ,’operator’);
Установка и настройка ODBC
.
[MariaDB]
Description = ODBC for MariaDB
Driver = /usr/lib/libmaodbc.so
Driver64 = /usr/lib64/libmaodbc.so
FileUsage = 1
.
* в данном примере описано подключение к СУБД с драйвером MariaDB и путем до файла с библиотекой (отдельно для 32- и 64-разрядной версии). Открываем файл:
[ODBC]Driver = MariaDB
USER = odbc_user
PASSWORD = odbc_password
Server = 127.0.0.1
Database = my_db
Port = 3306
Пробуем подключиться к базе с использованием ODBC:
* где ODBC — название для подключения, которое мы задали на предыдущем шаге.
Мы должны увидеть командную строку для ввода команд sql — пробуем получить данные из нашей таблицы users:
Мы должны увидеть что-то на подобие:
Можно выходить из sql-оболочки:
Настройка php
Теперь настроим подключение из php. Мы рассмотрим 2 способа подключения — с помощью odbc_connect и PDO.
Предварительно, создадим каталог, в который разместим тестовый скрипт для подключения к базе:
odbc_connect
Ставим расширение php-odbc (а также сам php, если его нет на сервере).
apt-get install php php-odbc
После установки создадим скрипт для проверки подключения:
$driver = «DRIVER=MariaDB»;
$server = «127.0.0.1»;
$db_name = «my_db»;
$port = «3306»;
$user = «odbc_user»;
$password = «odbc_password»;
$ocon = odbc_connect(«;Server=;Database=;Port=;String Types=Unicode», $user, $password);
$result = odbc_exec($ocon, «SELECT * FROM users LIMIT 10»);
while ($mass = odbc_fetch_array ($result)) print_r($mass);
>
* в данном листинге мы задаем параметры для подключения к локальному серверу (127.0.0.1) с учетными данными, которые создали при настройке СУБД. После мы выполняем выборку и выводим результат на экран.
Или же мы можем сократить наш скрипт. Ранее для проверки мы создали ODBC DSN в файле /etc/odbc.ini. PHP с помощью odbc_connect может ссылаться для соединения на него. Итого, получаем:
$ocon = odbc_connect(«ODBC», «odbc_user», «odbc_password»);
$result = odbc_exec($ocon, «SELECT * FROM users LIMIT 10»);
while ($mass = odbc_fetch_array ($result)) print_r($mass);
>
* обратите внимание, что мы передаем функции odbc_connect только 3 параметра для подключения:
PDO
Ставим расширение php-pdo (а также сам php, если его нет на сервере).
apt-get install php php-pdo
После установки создадим скрипт для проверки подключения:
$pcon = new PDO(«odbc:Driver=MariaDB;Server=127.0.0.1;Database=my_db;»,»odbc_user»,»odbc_password»);
try $result = $pcon->query(«SELECT * FROM users LIMIT 10»);
$mass = $result->fetchAll(PDO::FETCH_ASSOC);
print_r($mass);
> catch (Exception $e) throw new PDOException(var_export($pcon->errorInfo(),true));
>
* в данном листинге мы задаем параметры для подключения к локальному серверу (127.0.0.1) с учетными данными, которые создали при настройке СУБД. После мы выполняем выборку и выводим результат на экран.
Или же мы можем сократить наш скрипт. Ранее для проверки мы создали ODBC DSN в файле /etc/odbc.ini. PHP с помощью PDO может ссылаться для соединения на него. Итого, получаем:
$pcon = new PDO(«odbc:ODBC»,»odbc_user»,»odbc_password»);
try $result = $pcon->query(«SELECT * FROM users LIMIT 10»);
$mass = $result->fetchAll(PDO::FETCH_ASSOC);
print_r($mass);
> catch (Exception $e) throw new PDOException(var_export($pcon->errorInfo(),true));
>
* обратите внимание, что мы передаем функции PDO только 3 параметра для подключения:
Проверка запроса
После того, как мы создали скрипт проверки любым из вышеописанных способов, запускаем его на исполнение:
Мы должны получить следующий результат:
Array
(
[id] => 1
[name] => Дмитрий
[rights] => admin
)
Array
(
[id] => 2
[name] => Оля
[rights] => superuser
)
Array
(
[id] => 3
[name] => Антон
[rights] => operator
)
Подключение к MariaDB с помощью ODBC настроено.
Возможные ошибки
Call to undefined function odbc_connect()
Возникает при попытке запустить скрипт, который подключается к базе с помощью функции odbc_connect.
Причина: для нашей версии php не установлено расширение php-odbc.
Решение: команда для установки зависит от используемого типа дистрибутива Linux.
Проверить, что нужное расширение установлено можно командой:
Читайте также
Вам также может оказаться полезным: