Класс Postgres
Уровень PostgreSQL для DBO.
- Объект
-
Источник данных -
Источник Dbo -
Postgres
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение: Cake/Model/Datasource/Database/Postgres.php
Резюме свойств
-
$_baseConfigprotectedНастройки конфигурации базового драйвера. Объединены с пользовательскими настройками.array -
$_sequenceMapprotectedarrayСодержит сопоставления пользовательских последовательностей автоинкремента, если таблица использует имя последовательности, отличное от заданного соглашениями.
-
$_sqlOpsprotectedНабор допустимых операций SQL, используемых в операторе WHERE.array -
$columnspublicСтолбцыarray -
$descriptionpublicОписание драйвераstring -
$endQuotepublicЗакрывающая кавычкаstring -
$startQuotepublicОткрывающая кавычкаstring
Унаследованные свойства
-
_connection,_methodCacheChange,_queriesCnt,_queriesLog,_queriesLogMax,_queriesTime,_queryCache,_queryDefaults,_result,_sqlBoolOps,_transactionNesting,affected,alias,cacheMethods,configKeyName,fieldParameters,fullDebug,index,methodCache,numRows,tableParameters,took,useNestedTransactions,virtualFieldSeparator_descriptions,_sources,_transactionStarted,cacheSources,config,connected
Резюме методов
- _alterIndexes() protectedГенерирует PostgreSQL-запросы для изменения индексов таблицы.
- _quoteFunctionField() protected
Вспомогательная функция для обработки соответствующих
(Model.fields)из вызова preg_replace_callback. Цитирует поля в вызове функции. - alterSchema() publicИзменение схемы таблицы.
- boolean() publicПреобразование между значениями PHP boolean и PostgreSQL boolean.
- buildColumn() publicГенерирует строку схемы столбца PostgreSQL.
- buildIndex() publicФорматирование индексов для создания таблицы.
- column() publicПреобразование типов столбцов базы данных в базовые типы.
- connect() publicПодключение к базе данных с использованием опций в данном массиве конфигурации.
- describe() publicВозвращает массив полей в заданном имени таблицы.
- enabled() publicПроверка, включен/загружен ли PostgreSQL.
- fetchResult() publicИзвлечение следующей строки из текущего набора результатов.
- fields() publicГенерирует список полей SQL-запроса.
- getEncoding() publicПолучение кодировки базы данных.
- getSchemaName() publicПолучение имени схемы.
- getSequence() publicПолучение связанной последовательности для данной таблицы/поля.
- index() publicВозвращает массив индексов в данном источнике данных.
- lastInsertId() publicВозвращает ID, сгенерированный предыдущей операцией INSERT.
- length() publicПолучение длины описания столбца базы данных или null, если длина отсутствует.
- limit() publicВозвращает оператор LIMIT в правильном формате для конкретной базы данных.
- listSources() publicВозвращает массив таблиц в базе данных. Если таблиц нет, генерируется ошибка, и приложение завершается.
- name() publicПодготовка имён полей для цитирования родительским классом.
- nestedTransactionSupported() publicПроверка поддержки вложенных транзакций сервером.
- renderStatement() publicПереопределяет DboSource::renderStatement для обработки генерации схемы с индексами в стиле PostgreSQL.
- resetSequence() public
Сброс последовательности на основе значения MAX() для $column. Полезно для сброса последовательностей после использования insertMulti().
- resultSet() publicМетод resultSet.
- setEncoding() publicУстановка кодировки базы данных.
- truncate() publicУдаляет все записи в таблице и удаляет все связанные последовательности автоинкремента.
- value() publicВозвращает цитированную и экранированную строку $data для использования в SQL-запросе.
Подробное описание метода
_alterIndexes()source protected
_alterIndexes( string $table , array $indexes )
Генерирует PostgreSQL-запросы для изменения индексов таблицы.
Параметры
- строка
$table - Таблица для изменения индексов
- массив
$indexes - Индексы для добавления и удаления
Возвращает
массивЗапросы для изменения индексов
_quoteFunctionField()source protected
_quoteFunctionField( string $match )
Вспомогательная функция для обработки соответствующих (Model.fields) из вызова preg_replace_callback. Цитирует поля в вызове функции.
Параметры
- строка
$match - соответствующая строка
Возвращает
строкацитированная строка
alterSchema()source public
alterSchema( array $compare , string $table null )
Изменение схемы таблицы.
Параметры
- массив
$compare - Результаты CakeSchema::compare()
- строка
$tableнеобязательно null - Имя таблицы
Возвращает
массивПереопределяет
DboSource::alterSchema() boolean()source public
boolean( mixed $data , boolean $quote false )
Преобразование между значениями PHP boolean и PostgreSQL boolean.
Параметры
- смешанное
$data - Значение для преобразования
- boolean
$quoteнеобязательно false - true для цитирования boolean для использования в запросе, false для возврата значения boolean
Возвращает
booleanПреобразованное значение boolean
Переопределяет
DboSource::boolean() buildColumn()source public
buildColumn( array $column )
Сгенерировать строку схемы колонки Postgres
Параметры
- массив
$column Массив, структурированный следующим образом: array('name'=>'value', 'type'=>'value'[, options]), где options может быть 'default', 'length', или 'key'.
Возвращает
строкаПереопределяет
DboSource::buildColumn() buildIndex()source public
buildIndex( array $indexes , string $table null )
Форматировать индексы для создания таблицы
Параметры
- массив
$indexes - Индекс для построения
- строка
$tableнеобязательный null - Имя таблицы.
Возвращает
строкаПереопределяет
DboSource::buildIndex() column()source public
column( string $real )
Преобразует типы столбцов уровня базы данных в базовые типы
Параметры
- строка
$real - Реальный тип столбца на уровне базы данных (например, "varchar(255)")
Возвращает
строкаАбстрактный тип столбца (например, "строка")
Переопределяет
DataSource::column() connect()source public
connect( )
Подключается к базе данных, используя параметры в данном массиве конфигурации.
Возвращает
логическое значениеИстина, если подключение успешно.
Выбрасывает
MissingConnectionExceptiondescribe()source public
describe( Model|string $model )
Возвращает массив полей в заданном имени таблицы.
Параметры
-
Model|строка$model - Имя таблицы базы данных для проверки
Возвращает
массивПоля в таблице. Ключи — имя и тип
Переопределяет
DataSource::describe() enabled()source public
enabled( )
Проверить, включен/загружен ли PostgreSQL
Возвращает
логическое значениеПереопределяет
DataSource::enabled() fetchResult()source public
fetchResult( )
Извлекает следующую строку из текущего набора результатов
Возвращает
массивПереопределяет
DboSource::fetchResult() fields()source public
fields( Model $model , string $alias null , mixed $fields array() , boolean $quote true )
Генерирует список полей SQL-запроса.
Параметры
-
Model$model - Модель для получения полей.
- строка
$aliasнеобязательный null - Псевдоним имени таблицы.
- смешанный
$fieldsнеобязательный array() - Список полей для получения.
- логическое значение
$quoteнеобязательный true - Признак цитирования идентификаторов.
Возвращает
массивПереопределяет
DboSource::fields() getEncoding()source public
getEncoding( )
Получить кодировку базы данных
Возвращает
строкаКодировка базы данных
getSchemaName()source public
getSchemaName( )
Получить имя схемы
Возвращает
строкаИмя схемы
Переопределяет
DataSource::getSchemaName() getSequence()source public
getSequence( string|Model $table , string $field 'id' )
Получить связанную последовательность для заданной таблицы/поля
Параметры
- строка|
Model$table - Полное имя таблицы (с префиксом) как строка или объект модели
- строка
$fieldнеобязательный 'id' - Имя поля ID базы данных. По умолчанию "id"
Возвращает
строкаИмя связанной последовательности из карты последовательностей, по умолчанию "{$table}_{$field}_seq"
index()source public
index( string $model )
Возвращает массив индексов в заданном источнике данных.
Параметры
- строка
$model - Имя модели для проверки
Возвращает
массивПоля в таблице. Ключи — столбец и уникальность
Переопределяет
DboSource::index() lastInsertId()source public
lastInsertId( string $source null , string $field 'id' )
Возвращает ID, сгенерированный в ходе предыдущей операции INSERT.
Параметры
- строка
$sourceнеобязательный null - Имя таблицы базы данных
- строка
$fieldнеобязательный 'id' - Имя поля ID базы данных. По умолчанию "id"
Возвращает
целое числоПереопределяет
DboSource::lastInsertId() length()source public
length( string $real )
Получить длину описания столбца на уровне базы данных или null, если длина не указана
Параметры
- строка
$real - Реальный тип столбца на уровне базы данных (например, "varchar(255)")
Возвращает
целое числоЦелое число, представляющее длину столбца
Переопределяет
DboSource::length() limit()source public
limit( integer $limit , integer $offset null )
Возвращает оператор ограничения в правильном формате для конкретной базы данных.
Параметры
- целое число
$limit - Ограничение возвращаемых результатов
- целое число
$offsetнеобязательный null - Смещение, с которого начинать результаты
Возвращает
строкаSQL оператор ограничения/смещения
Переопределяет
DboSource::limit() listSources()source public
listSources( mixed $data null )
Возвращает массив таблиц в базе данных. Если таблицы отсутствуют, генерируется ошибка, и приложение завершается.
Параметры
- смешанный
$dataнеобязательный null - Источники для отображения.
Возвращает
массивМассив имён таблиц в базе данных
Переопределяет
DataSource::listSources() name()source public
name( string $data )
Подготавливает имена полей для цитирования родительским элементом
Параметры
- строка
$data - Имя для форматирования.
Возвращает
строкаSQL поле
Переопределяет
DboSource::name() nestedTransactionSupported()source public
nestedTransactionSupported( )
Проверить, поддерживает ли сервер вложенные транзакции
Возвращает
логическое значениеПереопределяет
DboSource::nestedTransactionSupported() renderStatement()source public
renderStatement( string $type , array $data )
Переопределяет DboSource::renderStatement для обработки генерации схемы с индексами в стиле Postgres
Параметры
- строка
$type - Тип запроса.
- массив
$data - Массив данных для рендеринга.
Возвращает
строкаПереопределяет
DboSource::renderStatement() resetSequence()source public
resetSequence( string $table , string $column )
Сбросить последовательность на основе максимального значения столбца $column. Полезно для сброса последовательностей после использования insertMulti().
Параметры
- строка
$table - Имя таблицы для обновления.
- строка
$column Столбец, используемый для сброса значения последовательности; имя последовательности будет извлечено с помощью Postgres::getSequence();
Возвращает
booleanуспех.
Переопределяет
DboSource::resetSequence() resultSet()source public
resultSet( array $results )
Метод resultSet
Параметры
- массив
$results - $results Результаты
setEncoding()source public
setEncoding( mixed $enc )
Устанавливает кодировку базы данных
Параметры
- смешанное
$enc - Кодировка базы данных
Возвращает
booleanИстина при успехе, ложь при ошибке
truncate()source public
truncate( string|Model $table , boolean $reset false )
Удаляет все записи в таблице и удаляет все связанные последовательности автоинкремента
Параметры
- строка|
Model$table - Строка или класс модели, представляющий таблицу для усечения
- boolean
$resetнеобязательно false true для сброса последовательности, false для сохранения как есть. и если 1, последовательности не изменяются
Возвращает
booleanSQL-запрос TRUNCATE TABLE, ложь, если не применимо.
Переопределяет
DboSource::truncate() value()source public
value( string $data , string $column null , boolean $null true )
Возвращает строку, заключенную в кавычки и экранированную, значения $data для использования в SQL-запросе.
Параметры
- строка
$data - Строка, подлежащая подготовке для использования в SQL-запросе
- строка
$columnнеобязательно null - Тип данных столбца, в который будут вставлены эти данные.
- boolean
$nullнеобязательно true - Столбец допускает значения NULL
Возвращает
строкаЗаключенное в кавычки и экранированное значение
Переопределяет
DboSource::value() Методы, унаследованные от DboSource
__construct()source public
__construct( array $config null , boolean $autoConnect true )
Конструктор
Параметры
- массив
$configнеобязательно null - Массив с информацией о конфигурации источника данных.
- boolean
$autoConnectнеобязательно true - Должен ли источник данных автоматически подключаться.
Выбрасывает
MissingConnectionExceptionпри невозможности подключения.
Переопределяет
DataSource::__construct() __destruct()source public
__destruct( )
Используется для хранения в кэше результатов метода in-memory methodCache
Переопределяет
DataSource::__destruct() _buildFieldParameters()source protected
_buildFieldParameters( string $columnString , array $columnData , string $position )
Создать параметры поля в позиции
Параметры
- строка
$columnString - Частично созданная строка столбца
- массив
$columnData - Массив данных столбца.
- строка
$position - Тип позиции для использования. 'beforeDefault' или 'afterDefault' — распространенные варианты
Возвращает
строкаСозданный столбец с добавленными параметрами поля.
_constructVirtualFields()source protected
_constructVirtualFields( Model $Model , string $alias , array $fields )
Преобразует виртуальные поля модели в SQL-выражения для последующего извлечения
Параметры
-
Model$Model - Модель, для которой нужно получить виртуальные поля.
- строка
$alias - Псевдоним имени таблицы
- массив
$fields - Виртуальные поля, которые будут использоваться в запросе
Возвращает
массив_dropTable()source protected
_dropTable( type $table )
Генерирует оператор «удаления таблицы» для одной таблицы
Параметры
- тип
$table - Имя таблицы для удаления
Возвращает
строкаSQL-запрос удаления таблицы
_execute()source protected
_execute( string $sql , array $params array() , array $prepareOptions array() )
Выполняет указанный SQL-запрос.
Параметры
- строка
$sql - SQL-запрос
- массив
$paramsнеобязательно array() - Список параметров, которые будут привязаны к запросу
- массив
$prepareOptionsнеобязательно array() - Параметры, используемые в подготовленном операторе
Возвращает
смешанноеPDOStatement, если запрос выполняется без проблем, true — при успешном выполнении, ложь — при ошибке запроса, возвращающего нулевые строки, например, оператор CREATE, ложь в противном случае
Выбрасывает
PDOException_fetchHasAndBelongsToMany()source protected
_fetchHasAndBelongsToMany( Model $Model , string $query , array $ids , string $association )
Извлечь ассоциации 'hasAndBelongsToMany'.
Параметры
-
Model$Model - Основной объект модели.
- строка
$query - Запрос ассоциации.
- массив
$ids - Массив идентификаторов связанных записей.
- строка
$association - Имя ассоциации.
Возвращает
массивРезультаты ассоциации.
_fetchHasMany()source protected
_fetchHasMany( Model $Model , string $query , array $ids )
Извлечь ассоциации 'hasMany'.
Параметры
-
Model$Model - Основной объект модели.
- строка
$query - Шаблон запроса ассоциации.
- массив
$ids - Массив идентификаторов связанных записей.
Возвращает
массивРезультаты ассоциации.
_filterResults()source protected
_filterResults( array $resultSet , Model $Model , array $filtered array() )
Передает результаты ассоциации через фильтры afterFind соответствующей модели.
Основная модель всегда исключается, так как фильтрация выполняется позже методом Model::_filterResults().
Параметры
- массив
$resultSet - $resultSet Ссылка на набор результатов для фильтрации.
-
Model$Model - Экземпляр модели для работы.
- массив
$filteredнеобязательно array() - Список классов, которые уже отфильтрованы, для пропуска.
Возвращает
массивМассив результатов, отфильтрованных через $Model->afterFind.
_filterResultsInclusive()source protected
_filterResultsInclusive( array $resultSet , Model $Model , array $toBeFiltered array() )
Пропускает результаты ассоциаций через фильтры afterFind соответствующей модели.
Аналогично DboSource::_filterResults(), но фильтрует только указанные модели. Основную модель нельзя указать, так как этот вызов внутренне использует DboSource::_filterResults().
Параметры
- массив
$resultSet - $resultSet Ссылка на результат набора, который нужно отфильтровать.
-
Model$Model - Экземпляр модели, с которой нужно работать.
- массив
$toBeFilteredнеобязательно array() - Список классов, которые нужно отфильтровать.
Возвращаемое значение
массивМассив результатов, отфильтрованных через $Model->afterFind.
_getJoins()source protected
_getJoins( Model $Model )
Возвращает массив условий SQL JOIN из ассоциаций модели.
Параметры
-
Model$Model - Модель, для которой нужно получить условия JOIN.2
Возвращаемое значение
массив_matchRecords()source protected
_matchRecords( Model $Model , mixed $conditions null )
Получает список идентификаторов записей для заданных условий. Используется для обновлений и удалений нескольких записей в базах данных, которые не поддерживают псевдонимы в запросах UPDATE/DELETE.
Параметры
-
Model$Model - Модель, для которой нужно найти соответствующие записи.
- смешанное
$conditionsнеобязательно null - Условия для сопоставления.
Возвращаемое значение
массивСписок идентификаторов записей
_mergeAssociation()source protected
_mergeAssociation( array $data , array $merge , string $association , string $type , boolean $selfJoin false )
Объединяет ассоциацию merge в данные
Параметры
- массив
$data - $data Данные для объединения.
- массив
$merge - $merge Данные для объединения.
- строка
$association - Имя ассоциации для объединения.
- строка
$type - Тип ассоциации
- булево
$selfJoinнеобязательно false - Является ли это самосвязью.
_mergeConditions()source protected
_mergeConditions( mixed $query , mixed $assoc )
Объединяет набор условий типа строка/массив.
Параметры
- смешанное
$query - Запрос, для которого нужно объединить условия.
- смешанное
$assoc - Имена ассоциаций.
Возвращаемое значение
массив_mergeHasMany()source protected
_mergeHasMany( array $resultSet , array $assocResultSet , string $association , Model $Model )
Объединяет результаты ассоциаций 'hasMany'.
Примечание: эта функция также обрабатывает форматирование данных.
Параметры
- массив
$resultSet - $resultSet Данные для объединения.
- массив
$assocResultSet - Данные для объединения.
- строка
$association - Имя модели, которая объединяется.
-
Model$Model - Модель, к которой происходит объединение.
_parseKey()source protected
_parseKey( string $key , mixed $value , Model $Model null )
Извлекает идентификатор Model.field и оператор SQL-условия из строки, форматирует и вставляет значения, а затем собирает их в фрагмент SQL.
Параметры
- строка
$key - Фрагмент SQL-ключа, содержащий поле и необязательный оператор SQL
- смешанное
$value - Значение(я), которое нужно вставить в строку
-
Model$Modelнеобязательно null - Объект модели, инициализирующий запрос
Возвращаемое значение
строка_prepareUpdateFields()source protected
_prepareUpdateFields( Model $Model , array $fields , boolean $quoteValues true , boolean $alias false )
Приводит поля и значения к кавычкам и готовит их для оператора SQL UPDATE.
Параметры
-
Model$Model - Модель, для которой нужно подготовить поля.
- массив
$fields - Поля для обновления.
- булево
$quoteValuesнеобязательно true - Если значения должны быть заключены в кавычки или обрабатываться как фрагменты SQL
- булево
$aliasнеобязательно false - Включить псевдоним модели в имя поля
Возвращаемое значение
массивПоля и значения, приведенные к кавычкам и подготовленные
_quoteFields()source protected
_quoteFields( string $conditions )
Приводит Model.fields к кавычкам
Параметры
- строка
$conditions - Условия для приведения к кавычкам.
Возвращаемое значение
строкаили false, если совпадений нет
_quoteMatchedField()source protected
_quoteMatchedField( string $match )
Вспомогательная функция для приведения совпадений Model.fields из вызова preg_replace_callback
Параметры
- строка
$match - Совпавшая строка
Возвращаемое значение
строкастрока в кавычках
_rollbackNested()source protected
_rollbackNested( )
Откат вложенной транзакции
Возвращаемое значение
булево_scrubQueryData()source protected
_scrubQueryData( array $data )
Внутренняя вспомогательная функция для удаления метаданных запроса из заданного массива данных.
Параметры
- массив
$data - Данные для очистки.
Возвращаемое значение
массив_writeQueryCache()source protected
_writeQueryCache( string $sql , mixed $data , array $params array() )
Записывает новый ключ в кэш запросов SQL в памяти.
Параметры
- строка
$sql - Запрос SQL
- смешанное
$data - Результат запроса $sql
- массив
$paramsнеобязательно array() - Параметры запроса, связанные в качестве значений
begin()source public
begin( )
Начать транзакцию
Возвращаемое значение
булевоTrue при успехе, false при ошибке (например, если база данных/модель не поддерживают транзакции или транзакция еще не началась).
Переопределяет
DataSource::begin() buildAssociationQuery()source public
buildAssociationQuery( Model $Model , array $queryData )
Создает оператор SQL.
Это всего лишь удобная обертка над DboSource::buildStatement().
Параметры
-
Model$Model - Модель, для которой нужно построить запрос ассоциации.
- массив
$queryData - Массив информации о queryData, содержащий ключи, аналогичные Model::find().
Возвращаемое значение
строкаСтрока, содержащая оператор SQL.
См. также
DboSource::buildStatement()buildJoinStatement()source public
buildJoinStatement( array $join )
Строит и генерирует условие JOIN из массива. Обрабатывает окончательную очистку перед преобразованием.
Параметры
- массив
$join - Массив, определяющий условие JOIN в запросе.
Возвращаемое значение
строкаУсловие SQL JOIN для использования в запросе.
См. также
DboSource::renderJoinStatement()DboSource::buildStatement()
buildStatement()source public
buildStatement( array $query , Model $Model )
Создаёт и генерирует SQL-запрос из массива. Обрабатывает окончательную очистку перед преобразованием.
Параметры
- массив
$query - Массив, определяющий SQL-запрос.
-
Model$Model - Объект модели, инициировавший запрос.
Возвращает
строкаВыполнимый SQL-запрос.
См. также
DboSource::renderStatement()buildTableParameters()source public
buildTableParameters( array $parameters , string $table null )
Форматирование параметров для создания таблицы
Параметры
- массив
$parameters - Параметры для создания SQL-запроса.
- строка
$tableнеобязательно null - Имя таблицы.
Возвращает
массивcacheMethod()source public
cacheMethod( string $method , string $key , mixed $value null )
Кэширование значения в methodCaches. Будет учитываться значение DboSource::$cacheMethods. Получит значение из кэша, если $value равно null.
Если кэширование отключено и попытка записи, то $value будет возвращено. Чтение вернёт значение или null.
Параметры
- строка
$method - Имя метода, который кэшируется.
- строка
$key - Имя ключа для операции кэширования.
- смешанный
$valueнеобязательно null - Значение для кэширования в памяти.
Возвращает
смешанныйЛибо null при ошибке, либо значение, если оно установлено.
calculate()source public
calculate( Model $Model , string $func , array $params array() )
Возвращает SQL-вычисление, например, COUNT() или MAX()
Параметры
-
Model$Model - Модель для получения вычисленного поля.
- строка
$func - Имя SQL-функции в нижнем регистре, например, 'count' или 'max'
- массив
$paramsнеобязательно массив() - Параметры функции (все значения должны быть вручную заключены в кавычки)
Возвращает
строкаФункция SQL-вычисления
close()source public
close( )
Отключает базу данных, закрывает соединение и сообщает о том, что соединение закрыто.
Переопределяет
DataSource::close() commit()source public
commit( )
Подтвердить транзакцию
Возвращает
булевоTrue при успехе, false при ошибке (например, если база данных/модель не поддерживает транзакции или транзакция не началась).
Переопределяет
DataSource::commit() conditionKeysToString()source public
conditionKeysToString( array $conditions , boolean $quoteValues true , Model $Model null )
Создаёт условие WHERE, анализируя заданный массив условий. Используется DboSource::conditions().
Параметры
- массив
$conditions - Массив или строка условий
- булево
$quoteValuesнеобязательно true - Если true, значения должны быть заключены в кавычки
-
Model$Modelнеобязательно null - Ссылка на экземпляр модели, выполняющий запрос
Возвращает
строкаSQL-фрагмент
conditions()source 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 - Ссылка на экземпляр модели, выполняющий запрос
Возвращает
строкаSQL-фрагмент
create()source public
create( Model $Model , array $fields null , array $values null )
Функция "C" в CRUD
Создаёт новые записи в базе данных.
Параметры
-
Model$Model - Объект модели, для которой создаётся запись.
- массив
$fieldsнеобязательно null Массив имён полей для вставки. Если null, используется $Model->data для генерации имён полей.
- массив
$valuesнеобязательно null Массив значений с ключами, соответствующими полям. Если null, используется $Model->data для генерации значений.
Возвращает
булевоУспех
Переопределяет
DataSource::create() createSchema()source public
createSchema( CakeSchema $schema , string $tableName null )
Генерирует схему базы данных для заданного объекта Schema.
Параметры
-
CakeSchema$schema - Экземпляр подкласса CakeSchema
- строка
$tableNameнеобязательно null Необязательно. Если указано, будет сгенерировано только указанное имя таблицы. В противном случае генерируются все таблицы, определённые в схеме.
Возвращает
строкаdefaultConditions()source public
defaultConditions( Model $Model , string|array|boolean $conditions , boolean $useAlias true )
Создаёт набор стандартных условий из модели, если $conditions равен null/пустому. Если условия заданы, они будут возвращены. Если модели не существует и условия не были заданы, то вернётся null или false, в зависимости от введённого значения.
Параметры
-
Model$Model - Модель для получения условий.
- строка|массив|булево
$conditions Массив условий, строка условий, null или false. Если задан массив или строка условий, они будут возвращены. В других случаях будет проверяться существование модели. Если модели нет, возвращается null или false в зависимости от введённого значения.
- булево
$useAliasнеобязательно true - Использовать псевдонимы моделей вместо имён таблиц при генерации условий
Возвращает
смешанныйЛибо null, false, $conditions или массив стандартных условий для использования.
См. также
DboSource::update()DboSource::conditions()
delete()source public
delete( Model $Model , mixed $conditions null )
Генерирует и выполняет SQL-запрос DELETE. Для баз данных, которые не поддерживают псевдонимы в запросах UPDATE.
Параметры
-
Model$Model - Модель, из которой необходимо удалить данные
- смешанный
$conditionsнеобязательно null - Условие для использования. Если пустое, используется первичный ключ модели.
Возвращает
булевоУспех
Переопределяет
DataSource::delete() dropSchema()source public
dropSchema( CakeSchema $schema , string $table null )
Генерирует оператор «drop table» для заданного объекта Schema.
Параметры
-
CakeSchema$schema - Экземпляр подкласса CakeSchema
- строка
$tableнеобязательно null Необязательно. Если указано, будет сгенерировано только имя указанной таблицы. В противном случае будут сгенерированы все таблицы, определённые в схеме.
Возвращает
строкаexecute()source public
execute( string $sql , array $options array() , array $params array() )
Выполняет запрос к базе данных с заданным SQL-запросом и получает некоторые метаданные о результате (затронутые строки, время выполнения, ошибки, количество строк в наборе результатов). Запрос также регистрируется. Если Configure::read('debug') установлено, журнал отображается всегда, иначе — только при ошибках.
Опции
- log — регистрировать ли запрос в памяти.
Параметры
- строка
$sql - SQL-запрос
- массив
$optionsнеобязательно массив() - Опции для выполнения запроса.
- массив
$paramsнеобязательно массив() - Значения для подстановки в запрос.
Возвращает
смешанноеРесурс или объект, представляющий результат, или false при ошибке
expression()source public
expression( string $expression )
Возвращает объект для представления выражения базы данных в запросе. Объекты выражений не проверяются и не экранируются.
Параметры
- строка
$expression - Произвольное SQL-выражение, которое нужно вставить в запрос.
Возвращает
stdClassОбъект, представляющий выражение базы данных для использования в запросе
fetchAll()source public
fetchAll( string $sql , array|boolean $params array() , array $options array() )
Возвращает массив всех строк результатов для заданного SQL-запроса.
Возвращает false, если совпадений нет.
Опции
-
cache— возвращает кэшированную версию запроса, если она существует, и сохраняет результат в кэше. Это кэш не сохраняется между запросами, и он действует только для одного запроса. По умолчанию этот параметр равен true. Если вы вызываете этот метод напрямую, вы можете отключить кэширование, установив $options вfalse
Параметры
- строка
$sql - SQL-запрос
- массив|булево
$paramsнеобязательно массив() Либо параметры, которые будут привязаны как значения к SQL-запросу, либо булево значение для управления кэшированием запроса.
- массив
$optionsнеобязательно массив() - Дополнительные параметры для запроса.
Возвращает
булево|массивМассив строк результата или false, если совпадений нет
fetchAssociated()source public
fetchAssociated( Model $Model , string $query , array $ids )
Получение ассоциаций 'hasMany'.
Это просто прокси для обеспечения обратной совместимости.
Параметры
-
Model$Model - Основной объект модели.
- строка
$query - Шаблон запроса ассоциации.
- массив
$ids - Массив идентификаторов связанных записей.
Возвращает
массивРезультаты ассоциации.
См. также
DboSource::_fetchHasMany()fetchRow()source public
fetchRow( string $sql null )
Возвращает строку из текущего набора результатов в виде массива.
Параметры
- строка
$sqlнеобязательно null - Некоторый SQL-запрос для выполнения.
Возвращает
массивПолученная строка в виде массива
fetchVirtualField()source public
fetchVirtualField( array $result )
Изменяет массив $result, чтобы поместить виртуальные поля в запись модели, куда они принадлежат.
Параметры
- массив
$result - $result Ссылка на полученную строку
field()source public
field( string $name , string $sql )
Возвращает одно поле из первой строки результатов для заданного SQL-запроса или false, если пусто.
Параметры
- строка
$name - Имя поля, которое нужно получить.
- строка
$sql - SQL-запрос.
Возвращает
смешанноеЗначение прочитанного поля или false, если не найдено.
flushMethodCache()source public
flushMethodCache( )
Очищает кэши методов. Эти кэши используются DboSource::name() и DboSource::conditions()
fullTableName()source public
fullTableName( Model|string $model , boolean $quote true , boolean $schema true )
Получает полное имя таблицы, включая префикс.
Параметры
-
Model|строка$model - Либо объект модели, либо строковое имя таблицы.
- булево
$quoteнеобязательно true - Указывает, нужно ли заключать имя таблицы в кавычки.
- булево
$schemaнеобязательно true - Указывает, нужно ли включать имя схемы.
Возвращает
строкаПолное имя таблицы в кавычках
generateAssociationQuery()source 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 - Указывает, является ли запрос ассоциации на внешнем источнике данных.
Возвращает
смешанноеСтрока, представляющая запрос. True, когда $external равен false, а ассоциация $type равна 'hasOne' или 'belongsTo'.
getConstraint()source 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.
Возвращает
массивМассив условий, определяющих ограничение между $Model и $LinkModel.
getLog()source public
getLog( boolean $sorted false , boolean $clear true )
Получить журнал запросов в виде массива.
Параметры
- булево
$sortedнеобязательно false - Получить запросы, отсортированные по времени выполнения, по умолчанию false.
- булево
$clearнеобязательно true - Если True, существующий журнал очистится.
Возвращает
массивМассив выполненных запросов
getQueryCache()source public
getQueryCache( string $sql , array $params array() )
Возвращает результат SQL-запроса, если он уже кэширован.
Параметры
- строка
$sql - SQL-запрос
- массив
$paramsнеобязательно array() - параметры запроса, привязанные в качестве значений
Возвращает
смешанный типрезультаты запроса, если он кэширован, в противном случае false
getVersion()source public
getVersion( )
Получает строку версии сервера базы данных.
Возвращает
строкаВерсия базы данных
group()source public
group( string|array $fields , Model $Model null )
Создает SQL-оператор GROUP BY.
Параметры
- строка|массив
$fields - Поля GROUP BY
-
Model$Modelнеобязательно null - Модель для получения полей группировки.
Возвращает
строкаОператор GROUP BY или null.
hasAny()source public
hasAny( Model $Model , string $sql )
Проверяет, содержит ли указанная таблица записи, соответствующие заданному SQL-запросу.
Параметры
-
Model$Model - Модель для поиска
- строка
$sql - SQL-оператор WHERE (только условие, без части "WHERE")
Возвращает
логический типTrue, если таблица содержит соответствующую запись, иначе false
hasResult()source public
hasResult( )
Проверяет, является ли результат допустимым.
Возвращает
логический типTrue, если результат допустим, иначе false
identifier()source public
identifier( string $identifier )
Возвращает объект для представления идентификатора базы данных в запросе. Объекты выражений не проверяются на безопасность и не экранируются.
Параметры
- строка
$identifier - SQL-выражение, используемое в качестве идентификатора
Возвращает
stdClassОбъект, представляющий идентификатор базы данных для использования в запросе
insertMulti()source public
insertMulti( string $table , array $fields , array $values )
Вставляет несколько значений в таблицу.
Параметры
- строка
$table - Таблица, в которую вставляются данные.
- массив
$fields - Массив имен полей/столбцов, которые вставляются.
- массив
$values Массив значений для вставки. Значения должны быть массивом строк. Каждая строка должна иметь значения, индексированные по имени столбца. Каждая строка должна иметь значения в том же порядке, что и $fields.
Возвращает
логический типintrospectType()source public
introspectType( string $value )
Определяет тип данных массива.
Параметры
- строка
$value - Значение для определения типа данных.
Возвращает
строкаisConnected()source public
isConnected( )
Проверяет, подключен ли источник к базе данных.
Возвращает
логический типTrue, если база данных подключена, иначе false
lastAffected()source public
lastAffected( mixed $source null )
Возвращает количество измененных строк в предыдущей операции с базой данных. Если предыдущей операции не существует, возвращает false.
Параметры
- смешанный тип
$sourceнеобязательно null - Источник для проверки.
Возвращает
целое числоКоличество измененных строк
Переопределяет
DataSource::lastAffected() lastError()source public
lastError( PDOStatement $query null )
Возвращает отформатированное сообщение об ошибке из предыдущей операции с базой данных.
Параметры
- PDOStatement
$queryнеобязательно null - запрос, из которого необходимо извлечь ошибку, если таковая имеется
Возвращает
строкаСообщение об ошибке с номером ошибки
lastNumRows()source public
lastNumRows( mixed $source null )
Возвращает количество строк в предыдущем наборе результатов. Если предыдущий набор результатов не существует, возвращает false.
Параметры
- смешанный тип
$sourceнеобязательно null - Не используется
Возвращает
целое числоКоличество строк в наборе результатов
Переопределяет
DataSource::lastNumRows() logQuery()source public
logQuery( string $sql , array $params array() )
Регистрирует предоставленный SQL-запрос.
Параметры
- строка
$sql - SQL-запрос
- массив
$paramsнеобязательно array() - Значения, привязанные к запросу (предварительно подготовленные запросы)
order()source public
order( array|string $keys , string $direction 'ASC' , Model $Model null )
Возвращает оператор ORDER BY в виде строки.
Параметры
- массив|строка
$keys - Ссылка на поле (например, Post.title)
- строка
$directionнеобязательно 'ASC' - Направление (ASC или DESC)
-
Model$Modelнеобязательно null - Ссылка на модель (используется для поиска виртуального поля)
Возвращает
строкаОператор ORDER BY
prepareFields()source public
prepareFields( Model $Model , array $queryData )
Подготавливает поля, необходимые для SQL-запроса.
Если поля не заданы, возвращаются все поля модели $Model.
Параметры
-
Model$Model - Модель для подготовки.
- массив
$queryData - Массив информации о данных запроса, содержащий ключи, аналогичные ключам Model::find().
Возвращает
массивМассив, содержащий SQL-поля.
query()source public
query( )
Абстракция запроса DataSource.
Возвращает
ресурсИдентификатор ресурса результата.
queryAssociation()source 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 - Объект связанной модели.
- строка
$type - Тип ассоциации, один из типов ассоциаций модели, например hasMany.
- строка
$association - Имя ассоциации.
- массив
$assocData - Данные ассоциации.
- массив
$queryData - $queryData Массив данных запроса, содержащий ключи, похожие на Model::find().
- логический тип
$external - Указывает, выполняется ли запрос ассоциации на внешнем источнике данных.
- массив
$resultSet - $resultSet Существующие результаты.
- целое число
$recursive - Количество уровней ассоциации.
- массив
$stack - Список соединенных моделей.
Возвращает
смешанный типИсключения
CakeExceptionпри невозможности создания результатов.
rawQuery()source public
rawQuery( string $sql , array $params array() )
Выполняет заданный SQL-запрос.
Параметры
- строка
$sql - SQL-запрос
- массив
$paramsнеобязательно массив() - Дополнительные параметры для запроса.
Возвращает
смешанный типРесурс или объект, представляющий результат набора, или false при ошибке
read()source public
read( Model $Model , array $queryData array() , integer $recursive null )
"R" в CRUD
Считывает запись(и) из базы данных.
Параметры
-
Model$Model - Объект модели, для которого предназначен запрос.
- массив
$queryDataнеобязательно массив() - Массив информации о запросе, содержащий ключи, аналогичные Model::find().
- целое число
$recursiveнеобязательно null - Количество уровней ассоциации
Возвращает
смешанный типboolean false при ошибке/неудаче. Массив результатов при успехе.
Переопределяет
DataSource::read() readTableParameters()source public
readTableParameters( string $name )
Чтение дополнительных параметров таблицы
Параметры
- строка
$name - Имя таблицы для чтения.
Возвращает
массивreconnect()source public
reconnect( array $config array() )
Подключение к серверу базы данных с необязательными новыми настройками
Параметры
- массив
$configнеобязательно массив() - Массив, определяющий новые настройки конфигурации
Возвращает
booleanTrue при успехе, false при ошибке
renderJoinStatement()source public
renderJoinStatement( array $data )
Отображает окончательный SQL-запрос JOIN
Параметры
- массив
$data - Данные для генерации запроса join.
Возвращает
строкаresolveKey()source public
resolveKey( Model $Model , string $key , string $assoc null )
Возвращает ключ, отформатированный как строка Model.fieldname (например, Post.title или Country.name)
Параметры
-
Model$Model - Модель для получения ключа.
- строка
$key - Поле ключа.
- строка
$assocнеобязательно null - Имя ассоциации.
Возвращает
строкаПереопределяет
DataSource::resolveKey() rollback()source public
rollback( )
Откат транзакции
Возвращает
booleanTrue при успехе, false при ошибке (например, если база данных/модель не поддерживает транзакции или транзакция не начата).
Переопределяет
DataSource::rollback() showLog()source public
showLog( boolean $sorted false )
Выводит содержимое журнала запросов. Если в не-CLI среде, элемент sql_log будет отображен и выведен. Если в CLI среде, генерируется текстовый журнал.
Параметры
- boolean
$sortedнеобязательно false - Получить запросы, отсортированные по времени выполнения, по умолчанию false.
update()source public
update( Model $Model , array $fields array() , array $values null , mixed $conditions null )
Генерирует и выполняет SQL-запрос UPDATE для заданной модели, полей и значений. Для баз данных, которые не поддерживают псевдонимы в запросах UPDATE.
Параметры
-
Model$Model - Модель для обновления.
- массив
$fieldsнеобязательно массив() - Поля для обновления
- массив
$valuesнеобязательно null - Значения полей.
- смешанный тип
$conditionsнеобязательно null - Условие для обновления. Когда не пустой $values не будет заключен в кавычки.
Возвращает
booleanУспех
Переопределяет
DataSource::update() Методы, унаследованные от DataSource
_cacheDescription()source protected
_cacheDescription( string $object , mixed $data null )
Кэширование описания DataSource
Параметры
- строка
$object - Имя объекта (модели) для кэширования
- смешанный тип
$dataнеобязательно null - Описание модели, обычно строка или массив
Возвращает
смешанный типinsertQueryData()source public
insertQueryData( string $query , array $data , string $association , Model $Model , array $stack )
Заменяет {$__cakeID__$} и {$__cakeForeignKey__$} плейсхолдеры в данных запроса.
Параметры
- строка
$query - Строка запроса, требующая замены.
- массив
$data - Массив данных со значениями, которые будут вставлены вместо плейсхолдеров.
- строка
$association - Имя модели ассоциации, которая будет заменена.
-
Model$Model - Экземпляр модели.
- массив
$stack - Стек контекста.
Возвращает
смешанный типСтрока данных запроса с заменёнными плейсхолдерами или false при ошибке.
setConfig()source public
setConfig( array $config array() )
Устанавливает конфигурацию для DataSource. Объединяет информацию из $config с _baseConfig и существующим свойством $config.
Параметры
- массив
$configнеобязательно массив() - Массив конфигурации
Методы, унаследованные от Object
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства $property текущего объекта со свойствами в определении $class. Значение свойства текущего класса будет объединено поверх $class'.
Это обеспечивает некоторую магию DRY, предоставляемую CakePHP. Если вы хотите отключить его, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойства с.
- boolean
$normalizeнеобязательно true - Установите в значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_set()source protected
_set( array $properties array() )
Позволяет установить несколько свойств объекта в одной строке кода. Будет устанавливать только свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно массив() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stop()source protected
_stop( integer|string $status 0 )
Остановить выполнение текущего скрипта. Обёртка exit(), что упрощает тестирование.
Параметры
- целое число/строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethod()source public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Обеспечивает объектно-ориентированный оболочку для call_user_func_array
Параметры
- строка
$method - Имя метода для вызова
- массив
$paramsнеобязательно array() - Список параметров для использования при вызове $method
Возвращаемое значение
mixedВозвращает результат вызова метода
log()source 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Успешность записи в журнал
requestAction()source 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необязательно array() Если массив содержит ключ "return", он устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.
Возвращаемое значение
mixedБулевое значение true или false при успехе/неудачи, или содержимое рендеренного действия, если 'return' установлен в $extra.
toString()source public
toString( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращаемое значение
строкаИмя этого класса
Подробное описание свойств
$_baseConfigsource
protected массив
Настройки конфигурации базового драйвера. Объединяются с пользовательскими настройками.
array(
'persistent' => true,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'cake',
'schema' => 'public',
'port' => 5432,
'encoding' => '',
'sslmode' => 'allow',
'flags' => array()
) $_sequenceMapsource
protected массив
Содержит сопоставления пользовательских последовательностей автоинкремента, если таблица использует имя последовательности, отличное от того, что диктуется соглашениями.
array()
$_sqlOpssource
protected массив
Набор допустимых операций SQL, используемых в операторе WHERE
array('like', 'ilike', 'or', 'not', 'in', 'between', '~', '~\*', '\!~', '\!~\*', 'similar to') $columnssource
public массив
Столбцы
array(
'primary_key' => array('name' => 'serial NOT NULL'),
'string' => array('name' => 'varchar', 'limit' => '255'),
'text' => array('name' => 'text'),
'integer' => array('name' => 'integer', 'formatter' => 'intval'),
'biginteger' => array('name' => 'bigint', 'limit' => '20'),
'float' => array('name' => 'float', 'formatter' => 'floatval'),
'decimal' => array('name' => 'decimal', 'formatter' => 'floatval'),
'datetime' => array('name' => 'timestamp', 'format' => 'Y-m-d H:i:s', 'formatter' => 'date'),
'timestamp' => array('name' => 'timestamp', 'format' => 'Y-m-d H:i:s', 'formatter' => 'date'),
'time' => array('name' => 'time', 'format' => 'H:i:s', 'formatter' => 'date'),
'date' => array('name' => 'date', 'format' => 'Y-m-d', 'formatter' => 'date'),
'binary' => array('name' => 'bytea'),
'boolean' => array('name' => 'boolean'),
'number' => array('name' => 'numeric'),
'inet' => array('name' => 'inet'),
'uuid' => array('name' => 'uuid')
)
© 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.8/class-Postgres.html