PHP расширение MySQLi

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

PHP расширение MySQLi (сокр. от MySQL improved) — улучшенное расширение для работы с СУБД MySQL, представляющее собой коннектор к вышеназванной СУБД MySQL, и являющееся обновлённой версией более старого подобного расширения MySQL.

Сессии соединений

В PHP модулях MySQL и MySQLi сессия соединения с MySQL сервером действительна на протяжении всей обработки скрипта интерпретатором PHP. Т.е. все запросы в одном скрипте идут в рамках одной MySQL сессии для каждого отдельного соединения (по пользователю, паролю, хосту и базе). Целый скрипт это 1 сессия MySQL для каждого отдельного пользователя БД. Т.е. можно в одном запросе установить глобальную или пользовательскую переменную сессии и ниже по скрипту её легко получить/изменить и т.д в след. запросе. После завершения обработки скрипта текущая сессия соединения с СУБД MySQL закрывается (завершается). Особенно важно это учитывать при работе с транзакциями т.к. они действуют на уровне сессий.

Мультизапросы

Стандартные функции расширения MySQLi (такие как query) работают только в режиме одного запроса и не поддерживают мультизапросы (множественные запросы), они не устанавливают на сервере специальный флаг, необходимый для выполнения мультизапросов. При попытке отправить мультизапрос, описанный в обычных функциях запросов расширения MySQLi, СУБД MySQL будет возвращать ошибку «(1064) You have an error in your SQL syntax» т.к. символ разделителя запросов (точка с запятой – ;) на сервер посылаться не будет. Для мультизапросов (пакетных запросов несколькими SQL предложениями в тексте одного соединения/запроса) существуют специальные функции, такие как mysqli_multi_query. Разделителем запросов служит точка с запятой (;). Использование множества выражений (мультизапросов) в «подготавливаемом запросе» не поддерживается.

Шаблон:PHP Шаблон:Расширения Шаблон:Базы данных