Класс DboSource
DboSource
Создаёт объекты-потомки DBO из заданной конфигурации подключения к базе данных
- Объект
-
DataSource -
DboSource
Прямые известные подклассы
Mysql, Postgres, Sqlite, SqlserverАвторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение Cake/Model/Datasource/DboSource.php
Детали метода
__constructsource public
__construct( array $config null , boolean $autoConnect true )
Конструктор
Параметры
- массив
$configнеобязательно null - Массив с информацией о конфигурации источника данных.
- булево
$autoConnectнеобязательно true - Указывает, необходимо ли автоматически подключаться к источнику данных.
Исключения
MissingConnectionExceptionв случае, если не удаётся установить соединение.
Переопределяет
DataSource::__construct() __destructsource public
__destruct( )
Используется для хранения в кэше результатов работы метода in-memory methodCache
Переопределяет
DataSource::__destruct() _buildFieldParameterssource protected
_buildFieldParameters( string $columnString , array $columnData , string $position )
Создаёт параметры поля в заданной позиции
Параметры
- строка
$columnString - Неполная строка столбца
- массив
$columnData - Массив данных столбца.
- строка
$position - Тип позиции. Обычно 'beforeDefault' или 'afterDefault'
Возвращает
stringСтрока столбца с добавленными параметрами поля.
_commitNestedsource protected
_commitNested( )
Завершить вложенную транзакцию
Возвращает
booleanbool
_constructVirtualFieldssource protected
_constructVirtualFields( Model $Model , string $alias , array $fields )
Преобразует виртуальные поля модели в SQL-выражения для последующего извлечения
Параметры
-
Model$Model - Модель для получения виртуальных полей.
- строка
$alias - Псевдоним таблицы
- массив
$fields - Виртуальные поля для использования в запросе
Возвращает
arrayМассив
_dropTablesource protected
_dropTable( type $table )
Генерирует оператор "удаление таблицы" для одной таблицы
Параметры
- тип
$table - Имя таблицы для удаления
Возвращает
stringSQL-выражение удаления таблицы
_executesource protected
_execute( string $sql , array $params array() , array $prepareOptions array() )
Выполняет заданное SQL-выражение.
Параметры
- строка
$sql - SQL-выражение
- массив
$paramsнеобязательно массив() - Список параметров для привязки к запросу
- массив
$prepareOptionsнеобязательно массив() - Параметры, которые будут использоваться в операторе prepare
Возвращает
mixedPDOStatement, если запрос выполняется без проблем, true в случае успешного запроса, false, если запрос не вернул строк (например, CREATE), иначе false
Исключения
PDOExceptionPDOException
_fetchHasAndBelongsToManysource protected
_fetchHasAndBelongsToMany( Model $Model , string $query , array $ids , string $association )
Извлекает ассоциации 'hasAndBelongsToMany'.
Параметры
-
Model$Model - Основной объект модели.
- строка
$query - Запрос ассоциации.
- массив
$ids - Массив идентификаторов связанных записей.
- строка
$association - Имя ассоциации.
Возвращает
arrayРезультаты ассоциации.
_fetchHasManysource protected
_fetchHasMany( Model $Model , string $query , array $ids )
Извлекает ассоциации 'hasMany'.
Параметры
-
Model$Model - Основной объект модели.
- строка
$query - Шаблон запроса ассоциации.
- массив
$ids - Массив идентификаторов связанных записей.
Возвращает
arrayРезультаты ассоциации.
_filterResultssource protected
_filterResults( array $resultSet , Model $Model , array $filtered array() )
Пропускает результаты ассоциации через фильтры afterFind соответствующей модели.
Основная модель всегда исключается, так как фильтрация выполняется позже в Model::_filterResults().
Параметры
- массив
$resultSet - $resultSet Ссылка на результат, который должен быть отфильтрован.
-
Model$Model - Экземпляр модели для обработки.
- массив
$filteredнеобязательно массив() - Список классов, которые уже были отфильтрованы, для пропуска.
Возвращает
arrayМассив результатов, отфильтрованных через $Model->afterFind.
_filterResultsInclusivesource protected
_filterResultsInclusive( array $resultSet , Model $Model , array $toBeFiltered array() )
Пропускает результаты ассоциации через фильтры afterFind соответствующей модели.
Аналогично DboSource::_filterResults(), но фильтрует только указанные модели. Основная модель не может быть указана, так как этот вызов DboSource::_filterResults() выполняется внутри.
Параметры
- массив
$resultSet - $resultSet Ссылка на результат, который должен быть отфильтрован.
-
Model$Model - Экземпляр модели для обработки.
- массив
$toBeFilteredнеобязательно массив() - Список классов для фильтрации.
Возвращает
arrayМассив результатов, отфильтрованных через $Model->afterFind.
_getJoinssource protected
_getJoins( Model $Model )
Возвращает массив SQL-условий JOIN из ассоциаций модели.
Параметры
-
Model$Model - Модель для получения условий JOIN.
Возвращает
arrayМассив
_matchRecordssource protected
_matchRecords( Model $Model , mixed $conditions null )
Возвращает список идентификаторов записей для заданных условий. Используется для обновлений и удаления нескольких записей в базах данных, которые не поддерживают псевдонимы в запросах UPDATE/DELETE.
Параметры
-
Model$Model - Модель для поиска соответствующих записей.
- смешанный
$conditionsнеобязательно null - Условия для сопоставления.
Возвращает
arrayСписок идентификаторов записей
_mergeAssociationsource protected
_mergeAssociation( array $data , array $merge , string $association , string $type , boolean $selfJoin false )
Объединить ассоциацию из merge в данные
Параметры
- массив
$data - $data Объединяемые данные.
- массив
$merge - $merge Данные для объединения.
- строка
$association - Имя ассоциации для объединения.
- строка
$type - Тип ассоциации
- логическое
$selfJoinнеобязательно false - Является ли это само-соединением.
_mergeConditionssource protected
_mergeConditions( mixed $query , mixed $assoc )
Объединяет набор условий в виде строки/массива.
Параметры
- смешанный тип
$query - Запрос для объединения условий.
- смешанный тип
$assoc - Имена ассоциаций.
Возвращает
arrayмассив
_mergeHasManysource protected
_mergeHasMany( array $resultSet , array $assocResultSet , string $association , Model $Model )
Объединить результаты ассоциаций 'hasMany'.
Примечание: эта функция также обрабатывает форматирование данных.
Параметры
- массив
$resultSet - $resultSet Данные для объединения.
- массив
$assocResultSet - Данные для объединения.
- строка
$association - Имя объединяемой модели.
-
Model$Model - Модель, к которой присоединяется.
_parseKeysource protected
_parseKey( string $key , mixed $value , Model $Model null )
Извлекает идентификатор Model.field и оператор SQL-условия из строки, форматирует и вставляет значения, а затем объединяет их в фрагмент SQL.
Параметры
- строка
$key - Фрагмент SQL-ключа, содержащий поле и необязательный оператор SQL
- смешанный тип
$value - Значение(я), которые нужно вставить в строку
-
Model$Modelнеобязательно null - Объект модели, инициирующий запрос
Возвращает
stringстрока
_prepareUpdateFieldssource protected
_prepareUpdateFields( Model $Model , array $fields , boolean $quoteValues true , boolean $alias false )
Цитирует и подготавливает поля и значения для оператора SQL UPDATE
Параметры
-
Model$Model - Модель для подготовки полей.
- массив
$fields - Поля для обновления.
- логическое
$quoteValuesнеобязательно true - Если значения должны быть процитированы или обработаны как фрагменты SQL
- логическое
$aliasнеобязательно false - Включать алиас модели в имя поля
Возвращает
arrayПоля и значения, процитированные и подготовленные
_quoteFieldssource protected
_quoteFields( string $conditions )
Цитирует поля Model.fields
Параметры
- строка
$conditions - Условия для цитирования.
Возвращает
stringили false, если совпадений нет
_quoteMatchedFieldsource protected
_quoteMatchedField( string $match )
Вспомогательная функция для цитирования совпадений Model.fields из вызова preg_replace_callback
Параметры
- строка
$match - Совпавший фрагмент
Возвращает
stringПроцитированная строка
_rollbackNestedsource protected
_rollbackNested( )
Откатить вложенную транзакцию
Возвращает
booleanbool
_scrubQueryDatasource protected
_scrubQueryData( array $data )
Внутренняя вспомогательная функция для удаления метаданных запроса в заданном массиве данных.
Параметры
- массив
$data - Данные для очистки.
Возвращает
arrayмассив
_writeQueryCachesource protected
_writeQueryCache( string $sql , mixed $data , array $params array() )
Записывает новый ключ для кэша запросов в оперативной памяти.
Параметры
- строка
$sql - SQL-запрос
- смешанный тип
$data - Результат запроса $sql
- массив
$paramsнеобязательно array() - Параметры запроса, связанные как значения
alterSchemasource public
alterSchema( mixed $compare , string $table null )
Генерирует синтаксис изменения из CakeSchema::compare()
Параметры
- смешанный тип
$compare - Данные сравнения.
- строка
$tableнеобязательно null - Имя таблицы.
Возвращает
booleanbool
beginsource public
begin( )
Начать транзакцию
Возвращает
booleanTrue при успехе, false при неудаче (например, если база данных/модель не поддерживают транзакции или транзакция еще не начата).
Переопределяет
DataSource::begin() booleansource public
boolean( mixed $data , boolean $quote false )
Преобразует между булевыми значениями PHP и булевыми значениями базы данных (имитируется)
Параметры
- смешанный тип
$data - Значение для преобразования
- логическое
$quoteнеобязательно false - Преобразовывать ли поле в строку.
Возвращает
string|booleanПреобразованное булевое значение
buildAssociationQuerysource public
buildAssociationQuery( Model $Model , array $queryData )
Создаёт SQL-запрос.
Это просто удобная обёртка над DboSource::buildStatement().
Параметры
-
Model$Model - Модель для создания запроса ассоциации.
- массив
$queryData - Массив с данными запроса, содержащий ключи, аналогичные Model::find().
Возвращает
stringСтрока, содержащая SQL-запрос.
См. также
DboSource::buildStatement()buildColumnsource public
buildColumn( array $column )
Генерирует строку схемы столбца, специфичную для базы данных.
Параметры
- массив
$column - Массив, структура которого подобна следующему: array('name' => 'value', 'type' => 'value'[, options]), где опции могут быть 'default', 'length', или 'key'.
Возвращает
stringстрока
buildIndexsource public
buildIndex( array $indexes , string $table null )
Форматирует индексы для create table.
Параметры
- массив
$indexes - Индексы для построения
- строка
$tableнеобязательно null - Имя таблицы.
Возвращает
arrayмассив
buildJoinStatementsource public
buildJoinStatement( array $join )
Строит и генерирует условие JOIN из массива. Обрабатывает окончательную очистку перед преобразованием.
Параметры
- массив
$join - Массив, определяющий условие JOIN в запросе.
Возвращает
stringУсловие SQL JOIN, которое будет использоваться в запросе.
См. также
DboSource::renderJoinStatement()DboSource::buildStatement()buildStatementsource public
buildStatement( array $query , Model $Model )
Строит и генерирует SQL-запрос из массива. Обрабатывает завершающую очистку перед преобразованием.
Параметры
- массив
$query - Массив, определяющий SQL-запрос.
-
Model$Model - Объект модели, инициировавший запрос.
Возвращает
stringИсполнимый SQL-запрос.
См. также
DboSource::renderStatement()buildTableParameterssource public
buildTableParameters( array $parameters , string $table null )
Форматирование параметров для создания таблицы
Параметры
- массив
$parameters - Параметры для создания SQL.
- строка
$tableнеобязательно null - Имя таблицы.
Возвращает
arrayмассив
cacheMethodsource public
cacheMethod( string $method , string $key , mixed $value null )
Кэширует значение в methodCaches. Учитывает значение DboSource::$cacheMethods. Возвращает значение из кэша, если $value равен null.
Если кэширование отключено и происходит запись, возвращается значение $value. При чтении возвращается значение из кэша или null.
Параметры
- строка
$method - Имя метода, который кэшируется.
- строка
$key - Имя ключа для операции кэширования.
- смешанный тип
$valueнеобязательно null - Значение для кэширования в памяти.
Возвращает
mixedВ случае ошибки null, иначе значение, если оно установлено.
calculatesource public
calculate( Model $Model , string $func , array $params array() )
Возвращает SQL-вычисление, например COUNT() или MAX().
Параметры
-
Model$Model - Модель для получения вычисляемого поля.
- строка
$func - Имя SQL-функции в нижнем регистре, например 'count' или 'max'.
- массив
$paramsнеобязательно array() - Параметры функции (все значения должны быть явно заключены в кавычки).
Возвращает
stringSQL-функцию вычисления
closesource public
close( )
Отключает базу данных, убивает соединение и отмечает его как закрытое.
Переопределяет
DataSource::close() commitsource public
commit( )
Подтверждает транзакцию
Возвращает
booleanTrue при успехе, false при неудаче (например, если база данных/модель не поддерживают транзакции или транзакция не начата).
Переопределяет
DataSource::commit() conditionKeysToStringsource public
conditionKeysToString( array $conditions , boolean $quoteValues true , Model $Model null )
Создаёт условие WHERE, анализируя переданный массив условий. Используется методом DboSource::conditions().
Параметры
- массив
$conditions - Массив или строка условий
- булево
$quoteValuesнеобязательно true - Если true, значения должны быть заключены в кавычки
-
Model$Modelнеобязательно null - Ссылка на экземпляр модели, выполняющей запрос
Возвращает
stringSQL-фрагмент
conditionssource public
conditions( mixed $conditions , boolean $quoteValues true , boolean $where true , Model $Model null )
Создаёт условие WHERE, анализируя переданные данные условий. Если переданы массив или строка условий, эти условия будут проанализированы и заключены в кавычки. Если передано булево значение, оно будет преобразовано в целое число как условие. Null вернёт 1 = 1.
Результаты этого метода хранятся в кэше памяти. Это улучшает производительность, но из-за использования алгоритма хеширования могут возникнуть коллизии. Установка DboSource::$cacheMethods в false отключит кэш памяти.
Параметры
- смешанный тип
$conditions - Массив или строка условий, или любое значение.
- булево
$quoteValuesнеобязательно true - Если true, значения должны быть заключены в кавычки
- булево
$whereнеобязательно true - Если true, к результату будет добавлен "WHERE "
-
Model$Modelнеобязательно null - Ссылка на экземпляр модели, выполняющей запрос
Возвращает
stringSQL-фрагмент
createsource public
create( Model $Model , array $fields null , array $values null )
Операция "C" в CRUD
Создаёт новые записи в базе данных.
Параметры
-
Model$Model - Объект модели, для которой создаётся запись.
- массив
$fieldsнеобязательно null - Массив имён полей для вставки. Если null, используется $Model->data для генерации имён полей.
- массив
$valuesнеобязательно null - Массив значений с ключами, соответствующими полям. Если null, используется $Model->data для генерации значений.
Возвращает
booleanРезультат операции
Переопределяет
DataSource::create() createSchemasource public
createSchema( CakeSchema $schema , string $tableName null )
Генерирует схему базы данных для данного объекта Schema
Параметры
-
CakeSchema$schema - Экземпляр подкласса CakeSchema
- строка
$tableNameнеобязательно null - Необязательно. Если указано, генерируется только таблица с заданным именем. В противном случае генерируются все таблицы, определённые в схеме.
Возвращает
stringстрока
defaultConditionssource public
defaultConditions( Model $Model , string|array|boolean $conditions , boolean $useAlias true )
Создаёт набор стандартных условий из модели, если $conditions равен null/пустой. Если условия переданы, возвращаются эти условия. Если модель не существует и условия не переданы, возвращается null или false в зависимости от входного значения.
Параметры
-
Model$Model - Модель для получения условий.
- строка|массив|булево
$conditions - Массив условий, строка условий, null или false. Если массив условий или строка условий, эти условия будут возвращены. В других случаях будет проверка существования модели. Если модель не существует, возвращается null или false в зависимости от входного значения.
- булево
$useAliasнеобязательно true - Использовать псевдонимы моделей вместо имён таблиц при генерации условий
Возвращает
mixedЗначение null, false, $conditions или массив стандартных условий.
См. также
DboSource::update()DboSource::conditions()deletesource public
delete( Model $Model , mixed $conditions null )
Генерирует и выполняет SQL-запрос DELETE. Для баз данных, которые не поддерживают псевдонимы в запросах UPDATE.
Параметры
-
Model$Model - Модель, из которой удаляются данные
- смешанный тип
$conditionsнеобязательно null - Условие. Если пустое, используется первичный ключ модели.
Возвращает
booleanРезультат операции
Переопределяет
DataSource::delete() dropSchemasource public
dropSchema( CakeSchema $schema , string $table null )
Генерирует SQL-запрос "drop table" для данного объекта Schema
Параметры
-
CakeSchema$schema - Экземпляр подкласса CakeSchema
- строка
$tableнеобязательно null - Необязательно. Если указано, генерируется только таблица с заданным именем. В противном случае генерируются все таблицы, определённые в схеме.
Возвращает
stringстрока
executesource public
execute( string $sql , array $options array() , array $params array() )
Выполняет запрос к базе данных с заданным SQL-выражением и получает метаданные о результате (затронутые строки, время выполнения, ошибки, количество строк в наборе результатов). Запрос также регистрируется. Если Configure::read('debug') установлено, регистрация отображается всегда, в противном случае — только при ошибках.
Параметры
- log - Регистрировать ли запрос в памяти.
Параметры
- строка
$sql - SQL-выражение
- массив
$optionsнеобязательно массив() - Параметры для выполнения запроса.
- массив
$paramsнеобязательно массив() - Значения, которые нужно привязать к запросу.
Возвращает
mixedРесурс или объект, представляющий набор результатов, или false при ошибке
expressionsource public
expression( string $expression )
Возвращает объект для представления выражения базы данных в запросе. Объекты выражений не проверяются и не экранируются.
Параметры
- строка
$expression - Произвольное SQL-выражение, которое нужно вставить в запрос.
Возвращает
stdClassОбъект, представляющий выражение базы данных для использования в запросе
fetchAllsource public
fetchAll( string $sql , array|boolean $params array() , array $options array() )
Возвращает массив всех строк результатов для заданного SQL-запроса.
Возвращает false, если строк не найдено.
Параметры
-
cache- Возвращает кэшированную версию запроса, если она существует и сохраняет результат в кэше. Это кэширование не сохраняется между запросами и действует только для одного запроса. По умолчанию этот параметр равен true. Если вы напрямую вызываете этот метод, вы можете отключить кэширование, установив $options вfalse
Параметры
- строка
$sql - SQL-выражение
- массив|логическое
$paramsнеобязательно массив() - Либо параметры, которые нужно привязать в качестве значений для SQL-выражения, либо логическое значение для управления кэшированием запросов.
- массив
$optionsнеобязательно массив() - Дополнительные параметры для запроса.
Возвращает
boolean|arrayМассив строк набора результатов или false, если строк не найдено
fetchAssociatedsource public
fetchAssociated( Model $Model , string $query , array $ids )
Получить ассоциированные записи 'hasMany'.
Это просто псевдоним для обратной совместимости.
Параметры
-
Model$Model - Основной объект модели.
- строка
$query - Шаблон запроса для ассоциации.
- массив
$ids - Массив идентификаторов связанных записей.
Возвращает
arrayРезультаты ассоциации.
См. также
DboSource::_fetchHasMany()fetchResultsource public
fetchResult( )
Получает следующую строку из текущего набора результатов
Возвращает
booleanbool
fetchRowsource public
fetchRow( string $sql null )
Возвращает строку из текущего набора результатов в виде массива
Параметры
- строка
$sqlнеобязательно null - SQL-запрос для выполнения.
Возвращает
arrayИзвлеченная строка в виде массива
fetchVirtualFieldsource public
fetchVirtualField( array $result )
Изменяет массив $result, чтобы поместить виртуальные поля в запись модели, где они должны быть
Параметры
- массив
$result - $result Ссылка на извлеченную строку
fieldsource public
field( string $name , string $sql )
Возвращает одно поле первой строки результатов заданного SQL-запроса или false, если пусто.
Параметры
- строка
$name - Имя поля, которое нужно получить.
- строка
$sql - SQL-запрос.
Возвращает
mixedЗначение считанного поля или false, если не найдено.
fieldssource public
fields( Model $Model , string $alias null , mixed $fields array() , boolean $quote true )
Генерирует список полей SQL-запроса.
Параметры
-
Model$Model - Модель, для которой нужно получить поля.
- строка
$aliasнеобязательно null - Псевдоним таблицы
- смешанный
$fieldsнеобязательно массив() - Предоставленный список полей.
- логическое
$quoteнеобязательно true - Если false, возвращает массив полей без кавычек
Возвращает
arrayмассив
flushMethodCachesource public
flushMethodCache( )
Очищает кэш методов. Эти кэши используются методами DboSource::name() и DboSource::conditions()
fullTableNamesource public
fullTableName( Model|string $model , boolean $quote true , boolean $schema true )
Возвращает полное имя таблицы, включая префикс
Параметры
-
Model|строка$model - Либо объект модели, либо строка с именем таблицы.
- логическое
$quoteнеобязательно true - Нужно ли имя таблицы в кавычках?
- логическое
$schemaнеобязательно true - Нужно ли включать имя схемы?
Возвращает
stringПолное имя таблицы в кавычках
generateAssociationQuerysource public
generateAssociationQuery( Model $Model , Model|null $LinkModel , string $type , string $association , array $assocData , array $queryData , boolean $external )
Генерирует запрос или часть запроса из одной модели или двух связанных моделей.
Создает строку, содержащую шаблон SQL-запроса.
Параметры
-
Model$Model - Основной объект модели.
-
Model|null$LinkModel - Связанный объект модели.
- строка
$type - Тип ассоциации, один из типов ассоциаций модели, например hasMany.
- строка
$association - Имя ассоциации.
- массив
$assocData - Данные ассоциации.
- массив
$queryData - $queryData Массив данных запроса, содержащий ключи, аналогичные ключам в Model::find().
- логическое
$external - Входит ли запрос ассоциации во внешнюю базу данных.
Возвращает
mixedСтрока, представляющая запрос. True, когда $external равен false, а ассоциация $type равна 'hasOne' или 'belongsTo'.
getConstraintsource public
getConstraint( string $type , Model $Model , Model $LinkModel , string $association , array $assocData , string $association2 null )
Возвращает массив условий для ограничения между двумя моделями.
Параметры
- строка
$type - Тип ассоциации.
-
Model$Model - Основной объект модели.
-
Model$LinkModel - Связанный объект модели.
- строка
$association - Имя ассоциации.
- массив
$assocData - Данные ассоциации.
- строка
$association2необязательно null - Имя ассоциации HABTM.
Возвращает
arrayМассив условий, определяющий ограничение между $Model и $LinkModel.
getLogsource public
getLog( boolean $sorted false , boolean $clear true )
Получить журнал запросов в виде массива.
Параметры
- boolean
$sortedнеобязательно false - Получить запросы, отсортированные по времени выполнения, по умолчанию false.
- boolean
$clearнеобязательно true - Если True, существующий журнал будет очищен.
Возвращает
arrayМассив выполненных запросов в виде массива
getQueryCachesource public
getQueryCache( string $sql , array $params array() )
Возвращает результат SQL запроса, если он кэширован.
Параметры
- string
$sql - SQL запрос
- array
$paramsнеобязательно array() - параметры запроса, связанные как значения
Возвращает
mixedрезультаты запроса, если он кэширован, в противном случае false
getVersionsource public
getVersion( )
Получить строку версии сервера базы данных.
Возвращает
stringВерсия базы данных
groupsource public
group( string|array $fields , Model $Model null )
Создать SQL-оператор GROUP BY.
Параметры
- string|array
$fields - Поля для GROUP BY
-
Model$Modelнеобязательно null - Модель для получения полей GROUP BY.
Возвращает
stringОператор GROUP BY или null.
hasAnysource public
hasAny( Model $Model , string $sql )
Проверить, содержит ли указанная таблица хотя бы одну запись, соответствующую заданному SQL.
Параметры
-
Model$Model - Модель для поиска
- string
$sql - SQL условие WHERE (только условие, без "WHERE")
Возвращает
booleanTrue, если таблица содержит соответствующую запись, иначе false
hasResultsource public
hasResult( )
Проверить, является ли результат корректным.
Возвращает
booleanTrue, если результат корректный, иначе false
identifiersource public
identifier( string $identifier )
Возвращает объект для представления идентификатора базы данных в запросе. Объекты выражений не проверяются на безопасность и не экранируются.
Параметры
- string
$identifier - SQL выражение, используемое как идентификатор
Возвращает
stdClassОбъект, представляющий идентификатор базы данных для использования в запросе
indexsource public
index( string $model )
Возвращает массив индексов в указанном источнике данных.
Параметры
- string
$model - Имя модели для проверки
Возвращает
arrayПоля в таблице. Ключи — столбец и уникальность
insertMultisource public
insertMulti( string $table , array $fields , array $values )
Вставляет несколько значений в таблицу.
Параметры
- string
$table - Таблица, в которую вставляются данные.
- array
$fields - Массив имен полей/столбцов, которые вставляются.
- array
$values - Массив значений для вставки. Значения должны быть массивом строк. Каждая строка должна содержать значения, ключи которых соответствуют имени столбца. Каждая строка должна содержать значения в том же порядке, что и в $fields.
Возвращает
booleanbool
introspectTypesource public
introspectType( string $value )
Определяет тип данных массива.
Параметры
- string
$value - Значение для определения типа данных.
Возвращает
stringstring
isConnectedsource public
isConnected( )
Проверяет, подключен ли источник к базе данных.
Возвращает
booleanTrue, если база данных подключена, иначе false
lastAffectedsource public
lastAffected( mixed $source null )
Возвращает количество изменённых строк в предыдущей операции с базой данных. Если предыдущая операция не существует, возвращает false.
Параметры
- mixed
$sourceнеобязательно null - Источник для проверки.
Возвращает
integerКоличество изменённых строк
Переопределяет
DataSource::lastAffected() lastErrorsource public
lastError( PDOStatement $query null )
Возвращает отформатированное сообщение об ошибке из предыдущей операции с базой данных.
Параметры
- PDOStatement
$queryнеобязательно null - запрос для извлечения ошибки, если она есть
Возвращает
stringСообщение об ошибке с номером ошибки
lastInsertIdsource public
lastInsertId( mixed $source null )
Возвращает ID, сгенерированный в предыдущей операции INSERT.
Параметры
- mixed
$sourceнеобязательно null - Источник для получения ID.
Возвращает
mixedmixed
Переопределяет
DataSource::lastInsertId() lastNumRowssource public
lastNumRows( mixed $source null )
Возвращает количество строк в предыдущем наборе результатов. Если предыдущий набор результатов не существует, возвращает false.
Параметры
- mixed
$sourceнеобязательно null - Не используется
Возвращает
integerКоличество строк в наборе результатов
Переопределяет
DataSource::lastNumRows() lengthsource public
length( string $real )
Возвращает длину описания столбца, соответствующего базе данных, или null, если длина неизвестна.
Параметры
- string
$real - Тип столбца на уровне базы данных (например, "varchar(255)")
Возвращает
mixedЦелое число или строка, представляющая длину столбца, или null для неизвестной длины.
limitsource public
limit( integer $limit , integer $offset null )
Возвращает оператор ограничения в формате, соответствующем конкретной базе данных.
Параметры
- integer
$limit - Ограничение на количество возвращаемых результатов
- integer
$offsetнеобязательно null - Смещение для начала возвращаемых результатов
Возвращает
stringSQL оператор ограничения/смещения
logQuerysource public
logQuery( string $sql , array $params array() )
Записать данный SQL запрос.
Параметры
- string
$sql - SQL оператор
- array
$paramsнеобязательно array() - Значения, привязанные к запросу (подготовленные запросы)
namesource public
name( mixed $data )
Возвращает строку с кавычками для имени $data, предназначенную для использования в SQL-запросе. Удаляет поля из SQL-функций перед добавлением кавычек.
Результаты этого метода хранятся в кэше памяти. Это повышает производительность, но из-за использования алгоритма хеширования возможны коллизии. Установка DboSource::$cacheMethods в false отключит кэш памяти.
Параметры
- mixed
$data - Строка с именем столбца, массив имен столбцов или объект из DboSource::expression() или DboSource::identifier()
Возвращает
stringSQL поле
nestedTransactionSupportedsource public
nestedTransactionSupported( )
Проверяет поддержку вложенных транзакций на сервере
Возвращает
booleanbool
ordersource public
order( array|string $keys , string $direction 'ASC' , Model $Model null )
Возвращает строку ORDER BY.
Параметры
- array|string
$keys - Ссылка на поле, например, Post.title
- string
$directionoptional 'ASC' - Направление (ASC или DESC)
-
Model$Modeloptional null - Ссылка на модель (используется для поиска виртуального поля)
Возвращает
stringСтрока ORDER BY
prepareFieldssource public
prepareFields( Model $Model , array $queryData )
Подготавливает поля, необходимые для SQL-запроса.
Если поля не указаны, возвращаются все поля $Model.
Параметры
-
Model$Model - Модель для подготовки.
- array
$queryData - Массив данных запроса, содержащий ключи, аналогичные Model::find().
Возвращает
arrayМассив SQL полей.
querysource public
query( )
Абстракция запроса DataSource
Возвращает
resourceИдентификатор ресурса результата.
queryAssociationsource public
queryAssociation( Model $Model , Model $LinkModel , string $type , string $association , array $assocData , array $queryData , boolean $external , array $resultSet , integer $recursive , array $stack )
Запрос ассоциаций.
Используется для извлечения результатов рекурсивных моделей.
- Ассоциации 'hasMany' без установленного лимита: Извлечение, фильтрация и слияние выполняются рекурсивно для каждого уровня.
- Ассоциации 'hasAndBelongsToMany': Извлечение и фильтрация выполняются независимо от установленного уровня (рекурсии).
Параметры
-
Model$Model - Основной объект модели.
-
Model$LinkModel - Связанный объект модели.
- string
$type - Тип ассоциации, один из типов ассоциаций модели, например, hasMany.
- string
$association - Имя ассоциации.
- array
$assocData - Данные ассоциации.
- array
$queryData - $queryData Массив данных запроса, содержащий ключи, аналогичные Model::find().
- boolean
$external - Является ли запрос ассоциации на внешнем источнике данных.
- array
$resultSet - $resultSet Существующие результаты.
- integer
$recursive - Количество уровней ассоциации.
- array
$stack - Список соединённых моделей.
Возвращает
mixedmixed
Исключения
CakeExceptionвозникает, когда результаты не могут быть созданы.
rawQuerysource public
rawQuery( string $sql , array $params array() )
Выполняет указанный SQL-запрос.
Параметры
- string
$sql - SQL-запрос
- array
$paramsoptional array() - Дополнительные параметры запроса.
Возвращает
mixedРесурс или объект, представляющий результат набора данных, или false при ошибке
readsource public
read( Model $Model , array $queryData array() , integer $recursive null )
"R" в CRUD
Считывает запись(и) из базы данных.
Параметры
-
Model$Model - Объект модели, для которого выполняется запрос.
- array
$queryDataoptional array() - Массив данных запроса, содержащий ключи, аналогичные Model::find().
- integer
$recursiveoptional null - Количество уровней ассоциации
Возвращает
mixedboolean false при ошибке. Массив результатов при успехе.
Переопределяет
DataSource::read() readTableParameterssource public
readTableParameters( string $name )
Считывает дополнительные параметры таблицы
Параметры
- string
$name - Имя таблицы для чтения.
Возвращает
arrayarray
reconnectsource public
reconnect( array $config array() )
Подключается к серверу базы данных с необязательными новыми настройками
Параметры
- array
$configoptional array() - Массив, определяющий новые настройки конфигурации
Возвращает
booleanTrue при успехе, false при ошибке
renderJoinStatementsource public
renderJoinStatement( array $data )
Генерирует окончательное SQL-утверждение JOIN
Параметры
- array
$data - Данные для генерации утверждения join.
Возвращает
stringstring
renderStatementsource public
renderStatement( string $type , array $data )
Генерирует окончательное SQL-утверждение, объединив компоненты в правильном порядке
Параметры
- string
$type - тип выполняемого запроса, например, select, create, update, delete, schema, alter.
- array
$data - Массив данных для вставки в запрос.
Возвращает
string|nullСгенерированное SQL-выражение для выполнения, в противном случае null.
resetSequencesource public
resetSequence( string $table , string $column )
Сброс последовательности на основе значения MAX() для $column. Полезно для сброса последовательности после использования insertMulti().
Этот метод должен быть реализован источниками данных, которые требуют использования последовательностей.
Параметры
- string
$table - Имя таблицы для обновления.
- string
$column - Столбец, который используется для сброса значения последовательности.
Возвращает
booleanУспех.
resolveKeysource public
resolveKey( Model $Model , string $key , string $assoc null )
Возвращает ключ в формате строки Model.fieldname (например, Post.title или Country.name).
Параметры
-
Model$Model - Модель для получения ключа.
- string
$key - Поле ключа.
- string
$assocoptional null - Имя ассоциации.
Возвращает
stringstring
Переопределяет
DataSource::resolveKey() rollbacksource public
rollback( )
Откатывает транзакцию
Возвращает
booleanTrue при успехе, false при неудаче (например, если база данных/модель не поддерживает транзакции или транзакция не начата).
Переопределяет
DataSource::rollback() showLogsource public
showLog( boolean $sorted false )
Выводит содержимое журнала запросов. Если среда не CLI, то отображается и выводится элемент sql_log. Если среда CLI, то генерируется текстовый журнал.
Параметры
- boolean
$sortedнеобязательно false - Сортировать запросы по времени выполнения, по умолчанию false.
truncatesource public
truncate( Model|string $table )
Удаляет все записи в таблице и сбрасывает счетчик автоинкрементного первичного ключа, если применимо.
Параметры
-
Model|string$table - Строка или класс модели, представляющие таблицу, которую нужно обнулить.
Возвращает
booleanSQL-выражение TRUNCATE TABLE, false, если неприменимо.
updatesource public
update( Model $Model , array $fields array() , array $values null , mixed $conditions null )
Генерирует и выполняет SQL-запрос UPDATE для заданной модели, полей и значений. Для баз данных, которые не поддерживают псевдонимы в запросах UPDATE.
Параметры
-
Model$Model - Модель для обновления.
- array
$fieldsнеобязательно array() - Поля для обновления.
- array
$valuesнеобязательно null - Значения полей.
- mixed
$conditionsнеобязательно null - Условие для обновления. Если $values не пусто, то значения не будут заключаться в кавычки.
Возвращает
booleanУспех
Переопределяет
DataSource::update() valuesource public
value( string $data , string $column null , boolean $null true )
Возвращает строку $data, заключенную в кавычки и экранированную для использования в SQL-запросе.
Параметры
- string
$data - Строка, которая должна быть подготовлена для использования в SQL-запросе.
- string
$columnнеобязательно null - Тип данных столбца, в который будет вставлено это данные.
- boolean
$nullнеобязательно true - Столбец допускает значения NULL.
Возвращает
stringЗаключенные в кавычки и экранированные данные
Методы, унаследованные от DataSource
_cacheDescriptionsource protected
_cacheDescription( string $object , mixed $data null )
Кэширование описания DataSource
Параметры
- string
$object - Имя объекта (модели) для кэширования
- mixed
$dataнеобязательно null - Описание модели, обычно строка или массив
Возвращает
mixedmixed
columnsource public
column( string $real )
Преобразует типы столбцов в базовые типы
Параметры
- string
$real - Действительный тип столбца (например, "varchar(255)")
Возвращает
stringАбстрактный тип столбца (например, "строка")
describesource public
describe( Model|string $model )
Возвращает описание модели (метаданные) или null, если не найдено.
Параметры
-
Model|string$model - Модель для описания.
Возвращает
array|nullМассив метаданных для модели $model
enabledsource public
enabled( )
Проверяет, удовлетворяются ли условия доступности DataSource. Часто используется из connect() для проверки поддержки перед установлением соединения.
Возвращает
booleanВыполнены ли условия использования Datasource.
getSchemaNamesource public
getSchemaName( )
Возвращает имя схемы. Переопределите в подклассах.
Возвращает
string|nullИмя схемы
insertQueryDatasource public
insertQueryData( string $query , array $data , string $association , Model $Model , array $stack )
Заменяет плейсхолдеры {$__cakeID__$} и {$__cakeForeignKey__$} в данных запроса.
Параметры
- string
$query - Строка запроса, нуждающаяся в замене плейсхолдеров.
- array
$data - Массив данных со значениями, которые будут вставлены вместо плейсхолдеров.
- string
$association - Имя модели ассоциации, которая заменяется.
-
Model$Model - Экземпляр модели.
- array
$stack - Стек контекста.
Возвращает
mixedСтрока данных запроса с заменёнными плейсхолдерами или false при ошибке.
listSourcessource public
listSources( mixed $data null )
Кэширует/возвращает кэшированные результаты для дочерних экземпляров.
Параметры
- mixed
$dataнеобязательно null - Не используется в этом классе.
Возвращает
array|nullМассив доступных источников в этом источнике данных.
setConfigsource public
setConfig( array $config array() )
Устанавливает конфигурацию для DataSource. Объединяет информацию из $config с _baseConfig и существующим свойством $config.
Параметры
- array
$configнеобязательно array() - Массив конфигурации.
Методы, унаследованные от Object
_mergeVarssource protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства $property данного объекта со свойством в определении $class. Значение данного объекта для свойства будет добавлено поверх $class'.
Это обеспечивает некоторые из возможностей DRY, предоставляемых CakePHP. Если вы хотите отключить их, переопределите этот метод как пустую функцию.
Параметры
- array
$properties - Имя свойств для объединения.
- string
$class - Класс, с которым объединяются свойства.
- boolean
$normalizeнеобязательно true - Установить в значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_setsource protected
_set( array $properties array() )
Позволяет установить несколько свойств объекта в одной строке кода. Будут установлены только свойства, которые являются частью объявления класса.
Параметры
- array
$propertiesнеобязательно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stopsource protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего сценария. Оборачивает exit(), что облегчает тестирование.
Параметры
- integer|string
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethodsource public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет обёртку для call_user_func_array.
Параметры
- string
$method - Имя вызываемого метода.
- array
$paramsнеобязательно array() - Список параметров для вызова $method.
Возвращает
mixedРезультат вызова метода
logsource public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Метод для записи сообщения в CakeLog. Подробнее о записи в журналы см. в CakeLog::write().
Параметры
- строка
$msg - Сообщение для журнала
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|строка|массив
$scopeнеобязательно null - Область(и), в которой создается сообщение журнала. Подробнее об областях ведения журналов см. в CakeLog::config().
Возвращаемое значение
booleanУспешность записи в журнал
requestActionsource public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любой точки. Может использоваться для связи контроллеров или подключения плагинов к главному приложению. requestAction может использоваться для возвращения отрисованных представлений или извлечения возвращаемого значения из действий контроллера.
Под капотом этот метод использует Router::reverse() для преобразования параметра $url в строковый URL. Вы должны использовать форматы URL, совместимые с Router::reverse().
Передача данных POST и GET
Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет смоделировать данные POST.
Параметры
- строка|массив
$url - Строковый или основанный на массиве URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- массив
$extraнеобязательно массив() - Если массив включает ключ "return", он устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.
Возвращаемое значение
mixedБулевое значение true или false об успехе/неудаче, или содержимое отрисованного действия, если в $extra установлен ключ 'return'.
toStringsource public
toString( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращаемое значение
stringИмя этого класса
Краткое описание свойств
Свойства, унаследованные от DataSource
$_baseConfigsource
protected array
Значения по умолчанию конфигурации конкретного источника данных
array() $_descriptionssource
protected array
Хранит ссылки на описания, загруженные источником данных
array() $_transactionStartedsource
protected boolean
Состоит ли этот источник данных в середине транзакции
false $cacheSourcessource
public boolean
Должны ли данные источника, такие как доступные таблицы и описания схемы, кэшироваться
true
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.7/class-DboSource.html