Справочник драйвера базы данных
Это платформо-независимый базовый класс реализации БД. Этот класс не вызывается напрямую. Это скорее адаптер класса, для конкретной базы данных, который позволит расширить и инстанцировать его.
Данный материал разбит на несколько статей и является ссылкой на них.
Важно
Не все методы поддерживаются различными драйверами баз данных, некоторые из них могут не работать (и возвращать false), если основной драйвер их не поддерживает.
- class CI_DB_driver
- initialize()
Возвращает: TRUE при успехе, FALSE при неудаче Возвращаемый тип: булев Инициализировать параметры базы данных, установить подключение к базе данных.
- db_connect($persistent = TRUE)
Параметры: - $persistent (булев) – Постоянное подключение или обычное
Возвращает: Подключение к БД ресурсу/объекту или FALSE в случае возникновения ошибки
Возвращаемый тип: смешанный
Установливает соединение с базой данных.
Примечание
Возвращаемое значение зависит от использываемого драйвера. Например, экземпляр mysqli вернет ‘mysqli’ драйвер.
- db_pconnect()
Возвращает: Подключение к БД ресурсу/объекту или FALSE в случае возникновения ошибки Возвращаемый тип: смешанный Устанавлвает постоянное соединение с базой данных.
Примечание
This method is just an alias for db_connect(TRUE).
- reconnect()
Возвращает: TRUE при успехе, FALSE при неудаче Возвращаемый тип: булев Сохранить / восстановить подключение к базе данных, если не было запросов к БД в течение времени превышающего время ожидания сервера.
- db_select( [$database = ''])
Параметры: - $database (строка) – Имя базы данных
Возвращает: TRUE при успехе, FALSE при неудаче
Возвращаемый тип: булев
Выбрать / переключить текущую базу данных.
- db_set_charset($charset)
Параметры: - $charset (строка) – Кодировка
Возвращает: TRUE при успехе, FALSE при неудаче
Возвращаемый тип: булев
Установить кодировку.
- platform()
Возвращает: Название платформы Возвращаемый тип: строка Название используемой платформы (mysql, mssql и т.д.)
- version()
Возвращает: Версия используемой базы данных Возвращаемый тип: строка Версия используемой базы данных.
- query($sql[, $binds = FALSE[, $return_object = NULL ]])
Параметры: - $sql (строка) – Инструкции SQL для выполнения
- $binds (массив) – Массив привязки данных
- $return_object (булев) – Нужно ли возвращать объект результата или нет
Возвращает: TRUE для успешных запросов “записи”, CI_DB_result экземпляр (метод цепочки) при успешном “запросе”, FALSE при ошибке
Возвращаемый тип: смешанный
Выполняет SQL запрос.
принимает SQL строку и возвращает объект результата после успешного выполнения запроса “чтения”.
Returns:
- Булев TRUE для успешных запросов “записи”
- Булев FALSE upon failure
- CI_DB_result объект успешных запросов “чтения”
- simple_query($sql)
Параметры: - $sql (строка) – Инструкции SQL для выполнения
Возвращает: Все основные “запросы” драйвера
Возвращаемый тип: смешанный
Упрощенная версия метода query(), уместно для использования, когда не важен результат, а просто нужно отправить запрос к базе данных.
- affected_rows()
Возвращает: Количество затронутых строк Возвращаемый тип: число Возвращает количество измененных строк последним выполненным запросом.
Проверить, сколько строк были созданы, обновлены или удалены во время последнего выполненного запроса.
- trans_strict( [$mode = TRUE])
Параметры: - $mode (булев) – Флаг строгого режима
Возвращаемый тип: пустота
Включить/Выключить “строгий” режим.
Когда строгий режим включен и одна из групп при использовании нескольких групп операций заершается провалом - все последующие группы не будут выполнены.
Если строгий режим отключен, каждая группа обрабатывается отдельно и при ошибке одной группы, остальные будут выполнены.
- trans_start([ $test_mode = FALSE])
Параметры: - $test_mode (булев) – Флаг режима тестирования
Возвращает: TRUE при успехе, FALSE при неудаче
Возвращаемый тип: булев
Начинает транзакцию.
- trans_complete()
Возвращает: TRUE при успехе, FALSE при неудаче Возвращаемый тип: булев Завершает транзакцию.
- trans_status()
Возвращает: TRUE если транзакция удалась, FALSE если нет Возвращаемый тип: булев Позволяет получить флаг статуса транзакции.
- compile_binds($sql, $binds)
Параметры: - $sql (строка) – Инструкции SQL
- $binds (массив) – Массив привязки данных
Возвращает: Обновленные инструкции SQL
Возвращаемый тип: строка
Компилирует SQL запрос со значениями привязки.
- is_write_type($sql)
Параметры: - $sql (строка) – Инструкции SQL
Возвращает: TRUE если инструкция SQL представляет “запись”, FALSE если нет
Возвращаемый тип: булев
Определяет, является ли запрос “записывающим” (например INSERT, UPDATE, DELETE) или “читающий” (SELECT).
- elapsed_time([ $decimals = 6])
Параметры: - $decimals (число) – Число десятичных разрядов
Возвращает: Затраченное время запросов, в микросекундах
Возвращаемый тип: строка
Расчет прошедшего времени запроса.
- total_queries()
Возвращает: Общее число выполненных запросов Возвращаемый тип: число Возвращает общее количество запросов.
- last_query()
Возвращает: Последний выполненный запрос Возвращаемый тип: строка Возвращает последний запрос, который был выполнен.
- escape($str)
Параметры: - $str (смешанный) – Значение для экранирования, или массив из них
Возвращает: Значение для экранирования
Возвращаемый тип: смешанный
Экранирование входных данных в зависимости от типа, включая логическое (булев) и NULL.
- escape_str($str[, $like = FALSE])
Параметры: - $str (смешанный) – Строковое значение или массив нескольких
- $like (булев) – Будет ли строка использоваться в LIKE условии
Возвращает: Экранированная строка(и)
Возвращаемый тип: смешанный
Экранирование строковых значений.
Внимание
Возвращаемые строки НЕ обрамлены кавычками.
- escape_like_str($str)
Параметры: - $str (смешанный) – Строковое значение или массив нескольких
Возвращает: Экранированная строка(и)
Возвращаемый тип: смешанный
Экранрут LIKE строки.
Аналогично escape_str(), но также экранирует % и _ подстановочные знаки, так что они не вызывают ложных срабатываний в LIKE условиях.
Важно
Метод escape_like_str() спользует ‘!’ (восклицательный знак) чтобы избежать специальных символов для LIKE условий. Потому что этот способ экранирует части строк, которые вы обернули кавычками, он не может автоматически добавить ЭКРАНИРОВАННЫЙ '!' так что придется делать это самим.
- primary($table)
Параметры: - $table (строка) – Имя таблицы
Возвращает: Имя первичного ключа, FALSE если нет
Возвращаемый тип: строка
Получает первичный ключ таблицы.
Примечание
Если СУБД не поддерживает распознавание первичного ключа, то имя первого столбца можно использовать в качестве первичного ключа.
- count_all([ $table = ''])
Параметры: - $table (строка) – Имя таблицы
Возвращает: Количество строк в указанной таблице
Возвращаемый тип: int
Возвращает общее количество строк в таблице, или 0 если отсутствуют.
- list_tables([ $constrain_by_prefix = FALSE])
Параметры: - $constrain_by_prefix (булев) – TRUE при соответствии имени таблицы с префиксом
Возвращает: Массив имен таблиц или FALSE в случае возникновения ошибки
Возвращаемый тип: массив
Возвращает список таблиц в текущей базе данных.
- table_exists($table_name)
Параметры: - $table_name (строка) – Имя таблицы
Возвращает: TRUE если таблица существует, FALSE еси нет
Возвращаемый тип: булев
Определяет, существует ли конкретная таблица.
- list_fields($table)
Параметры: - $table (строка) – Имя таблицы
Возвращает: Массив имен полей или FALSE в случае неудачи
Возвращаемый тип: массив
Возвращает список имен полей в таблице.
- field_exists($field_name, $table_name)
Параметры: - $table_name (строка) – Имя таблицы
- $field_name (строка) – Имя поля
Возвращает: TRUE если это поле существует в этой таблице, FALSE если нет
Возвращаемый тип: булев
Определяет, существует ли конкретное поле.
- field_data($table)
Параметры: - $table (строка) – Имя таблицы
Возвращает: Массив полей или элементов или FALSE в случае неудачи
Возвращаемый тип: массив
Возвращает список, содержащий сведения о полях в таблице.
- escape_identifiers($item)
Параметры: - $item (смешанный) – Элемент или массив элементов, для экранирования
Возвращает: Экранированный элемент(ы) ввода
Возвращаемый тип: смешанный
Экранирует SQL идентификаторы, такие как колонки, таблицы и имена.
- insert_string($table, $data)
Параметры: - $table (строка) – Целевая таблица
- $data (массив) – Ассоциативный массив пар ключ/значение
Возвращает: SQL INSERT инструкция как строка
Возвращаемый тип: строка
Создаёт строку инструкции INSERT.
- update_string($table, $data, $where)
Параметры: - $table (строка) – Целевая таблица
- $data (массив) – Ассоциативный массив пар ключ/значение
- $where (смешанный) – WHERE условия инструкции
Возвращает: SQL UPDATE инструкция как строка
Возвращаемый тип: строка
Создаёт строку инструкции UPDATE.
- call_function($function)
Параметры: - $function (строка) – Имя функции
Возвращает: Результат функции
Возвращаемый тип: строка
Работает родная PHP функция, с помощью платформы агностик обертка (agnostic wrapper).
- cache_set_path([ $path = ''])
Параметры: - $path (строка) – Путь к директории кеша
Возвращаемый тип: пустота
Задает путь к папке, используемой для хранения кеша.
- cache_on()
Возвращает: TRUE если кеширование включено, FALSE если нет Возвращаемый тип: булев Включает кеширование результататов баз данных.
- cache_off()
Возвращает: TRUE если кеширование включено, FALSE если нет Возвращаемый тип: булев Отключает кеширование результататов баз данных.
- cache_delete([ $segment_one = ''[, $segment_two = ''] ])
Параметры: - $segment_one (строка) – Перывй URI сегмент
- $segment_two (строка) – Второй URI сегмент
Возвращает: TRUE при успехе, FALSE при неудаче
Возвращаемый тип: булев
Удалить файлы кеша связанные с определенным URI.
- cache_delete_all()
Возвращает: TRUE при успехе, FALSE при неудаче Возвращаемый тип: булев Удалить все файлы кеша.
- display_error([$error = '' [, $swap = ''[, $native = FALSE]]])
Параметры: - $error (строка) – Сообщение об ошибке
- $swap (строка) – Любые “заменяемые” значения
- $native (булев) – Следует ли локализовать сообщение
Возвращаемый тип: пустота
Возвращает: Выводит ошибку БД в application/views/errors/error_db.php шаблон
Возвращаемый тип: строка
Отображает сообщение об ошибке и останавливает выполнение скрипта.
Сообщение отображается с помощью application/views/errors/error_db.php шаблона.
- protect_identifiers($item[, $prefix_single = FALSE[, $protect_identifiers = NULL [, $field_exists = TRUE] ]])
Параметры: - $item (строка) – Элемент для работы
- $prefix_single (булев) – Нужно ли применять префикс даже если элемент один идентификатор
- $protect_identifiers (булев) – Стоит ли обрамлять кавычками идентификаторы
- $field_exists (булев) – Соответствует ли указанный элемент имени поля
Возвращает: Измененный элемент
Возвращаемый тип: строка
Берет столбец или имя таблицы (при необходимости с псевдонимом) и применяет префикс к нему.
Необходимая логика для имен столбцов, которые содержат путь.
Рассмотрим запрос:
SELECT * FROM hostname.database.table.column AS c FROM hostname.database.table
Или такой запрос:
SELECT m.member_id, m.member_name FROM members AS m
Поскольку имя столбца может включать до четырех сегментов (хост, DB, таблица, столбец) или иметь псевдоним префикса, нам нужно сделать немного работы, чтобы разобраться и вставить префикс таблиц (если он существует) в правильную позицию, и экранировать только нжные идентификаторы.
Этот метод широко используется в классе Построителя запросов.