Класс Sqlserver
Слой Dbo для официального драйвера SQLServer от Microsoft
Слой Dbo для MS SQL Server 2005 и выше. Требуется включение расширения pdo_sqlsrv.
- Объект
-
ИсточникДанных -
DboSource -
Sqlserver
Ссылка: http://www.php.net/manual/en/ref.pdo-sqlsrv.php
Авторские права: Авторские права (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT Лицензия
Расположение: Cake/Model/Datasource/Database/Sqlserver.php
Краткое описание констант
-
string'_cake_page_rownum_'
Краткое описание свойств
-
$_baseConfigprotectedОсновные параметры конфигурации для драйвера MS SQLarray -
$_fieldMappingsprotectedarrayСоздаёт соответствие между псевдонимами полей и числовыми индексами. Обход ограничений драйвера SQL Server на длину имени колонки (30 символов).
-
$_lastAffectedprotectedСохранение последнего изменённого значенияmixed -
$columnspublicОпределение колонки в MS SQLarray -
$descriptionpublicОписание драйвераstring -
$endQuotepublicЗаключающий символ для идентификаторов в кавычкахstring -
$startQuotepublicНачальный символ для идентификаторов в кавычкахstring
Наследованные свойства
-
_connection,_methodCacheChange,_queriesCnt,_queriesLog,_queriesLogMax,_queriesTime,_queryCache,_queryDefaults,_result,_sqlBoolOps,_sqlOps,_transactionNesting,affected,alias,cacheMethods,configKeyName,fieldParameters,fullDebug,index,methodCache,numRows,tableParameters,took,useNestedTransactions,virtualFieldSeparator_descriptions,_sources,_transactionStarted,cacheSources,config,connected
Краткое описание методов
- _dropTable() protectedГенерирует оператор "удаление таблицы" для заданной таблицы
- _execute() protectedВыполняет заданный SQL-запрос.
- _getPrimaryKey() protectedОбеспечивает возврат первичного ключа
- buildColumn() publicГенерирует строку схемы колонки в формате базы данных
- buildIndex() publicФорматирует индексы для создания таблицы
- column() publicПреобразует типы колонок уровня базы данных в базовые типы
- connect() publicПодключается к базе данных с использованием параметров из массива конфигурации.
- create() public
Генерирует и выполняет SQL-запрос INSERT для заданной модели, полей и значений. Удаляет колонку Идентификатор (первичный ключ) из данных обновления перед возвращением родителю, если значение пустое.
- describe() publicВозвращает массив полей в заданной таблице.
- enabled() publicПроверяет установку/загрузку PDO SQL Server
- fetchResult() public
Извлекает следующую строку из текущего набора результатов. Обрабатывает магическую переменную ROW_COUNTER.
- fields() publicГенерирует список полей SQL-запроса.
- getSchemaName() publicПолучает имя схемы
- insertMulti() publicВставляет несколько значений в таблицу
- lastAffected() public
Возвращает количество затронутых строк в предыдущей операции базы данных. Если предыдущая операция отсутствует, возвращает false.
- length() public
Обработка специфических свойств длины SQLServer. SQLServer обрабатывает текстовые типы как nvarchar/varchar с длиной -1.
- limit() publicВозвращает оператор ограничения в правильном формате для конкретной базы данных.
- listSources() publicВозвращает массив источников (таблиц) в базе данных.
- read() public
Возвращает массив всех строк результатов для заданного SQL-запроса. Возвращает false, если совпадений нет.
- renderStatement() publicСтроит окончательный SQL-запрос
- resultSet() publicСтроит карту столбцов, содержащихся в результате
- update() public
Генерирует и выполняет SQL-запрос UPDATE для заданной модели, полей и значений. Удаляет колонку Идентификатор (первичный ключ) из данных обновления перед возвращением родителю.
- value() publicВозвращает строку, содержащую цитируемое и экранированное значение $data для использования в SQL-запросе.
Подробное описание методов
_dropTable()source protected
_dropTable( type $table )
Генерирует оператор "удаление таблицы" для заданной таблицы
Параметры
- тип
$table - Имя таблицы, которую нужно удалить
Возвращает
строкаSQL-запрос для удаления таблицы
Переопределяет
DboSource::_dropTable() _execute()source protected
_execute( string $sql , array $params array() , array $prepareOptions array() )
Выполняет заданный SQL-запрос.
Параметры
- строка
$sql - SQL-запрос
- массив
$paramsнеобязательно массив() - Список параметров, которые нужно привязать к запросу (поддерживается только в запросах select)
- массив
$prepareOptionsнеобязательно массив() - Параметры, которые нужно использовать в операторе prepare
Возвращает
смешанноеPDOStatement, если запрос выполняется без проблем, true в случае успешного запроса, false в случае запроса без строк результатов, например CREATE, false в противном случае
Выбрасывает
PDOExceptionПереопределяет
DboSource::_execute() _getPrimaryKey()source protected
_getPrimaryKey( Model|string $model )
Обеспечивает возврат первичного ключа
Параметры
-
Model|строка$model - Экземпляр модели таблицы
Возвращает
строкаbuildColumn()source public
buildColumn( array $column )
Генерирует строку схемы колонки в формате базы данных
Параметры
- массив
$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( mixed $real )
Преобразует типы столбцов уровня базы данных в базовые типы
Параметры
- смешанный
$real Либо строковое значение типа поля, либо объект результата из Sqlserver::describe()
Возвращает
строкаАбстрактный тип столбца (например, "строка")
Переопределяет
DataSource::column() connect()source public
connect( )
Подключается к базе данных с использованием параметров в заданном массиве конфигурации.
Возвращает
логическоеИстина, если база данных подключилась, иначе ложь
Выбрасывает
MissingConnectionExceptioncreate()source public
create( Model $model , array $fields null , array $values null )
Генерирует и выполняет SQL-запрос INSERT для заданной модели, полей и значений. Удаляет столбец идентификатора (первичный ключ) из данных обновления перед возвращением родительскому элементу, если значение пустое.
Параметры
-
Model$model - Модель для вставки.
- массив
$fieldsнеобязательно null - Поля для установки.
- массив
$valuesнеобязательно null - Значения для установки.
Возвращает
массивПереопределяет
DboSource::create() describe()source public
describe( Model|string $model )
Возвращает массив полей в заданном имени таблицы.
Параметры
-
Model|строка$model - Объект модели для описания или строковое имя таблицы.
Возвращает
массивПоля в таблице. Ключи — имя и тип
Выбрасывает
CakeExceptionПереопределяет
DataSource::describe() enabled()source public
enabled( )
Проверка установки/загрузки PDO SQL Server
Возвращает
логическоеПереопределяет
DataSource::enabled() fetchResult()source public
fetchResult( )
Извлекает следующую строку из текущего набора результатов. Удаляет магическую переменную ROW_COUNTER.
Возвращает
смешанныйПереопределяет
DboSource::fetchResult() fields()source public
fields( Model $model , string $alias null , array $fields array() , boolean $quote true )
Генерирует список полей SQL-запроса.
Параметры
-
Model$model - Модель, для которой нужно получить поля.
- строка
$aliasнеобязательно null - Псевдоним имени таблицы
- массив
$fieldsнеобязательно array() - Поля до сих пор.
- логическое
$quoteнеобязательно true - Признак цитирования идентификаторов.
Возвращает
массивПереопределяет
DboSource::fields() getSchemaName()source public
getSchemaName( )
Получение имени схемы
Возвращает
строкаИмя схемы
Переопределяет
DataSource::getSchemaName() insertMulti()source public
insertMulti( string $table , string $fields , array $values )
Вставка нескольких значений в таблицу
Параметры
- строка
$table - Таблица для вставки.
- строка
$fields - Поля для установки.
- массив
$values - Значения для установки.
Переопределяет
DboSource::insertMulti() lastAffected()source public
lastAffected( mixed $source null )
Возвращает количество затронутых строк в предыдущей операции с базой данных. Если предыдущей операции не было, возвращает ложь.
Параметры
- смешанный
$sourceнеобязательно null - Не используется
Возвращает
целое числоКоличество затронутых строк
Переопределяет
DboSource::lastAffected() length()source public
length( mixed $length )
Обработка свойств длины, специфичных для SQLServer. SQLServer обрабатывает текстовые типы как nvarchar/varchar с длиной -1.
Параметры
- смешанный
$length - Либо длина как строка, либо объект описания столбца.
Возвращает
смешанныйnull|целое число с длиной столбца.
Переопределяет
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() read()source public
read( Model $model , array $queryData array() , integer $recursive null )
Возвращает массив всех строк результатов для данного SQL-запроса. Возвращает ложь, если совпадений строк нет.
Параметры
-
Model$model - Модель для чтения.
- массив
$queryDataнеобязательно array() - Данные запроса
- целое число
$recursiveнеобязательно null - Сколько слоёв пройти.
Возвращает
массив|ложьМассив строк набора результатов или ложь, если совпадений строк нет
Переопределяет
DboSource::read() renderStatement()source public
renderStatement( string $type , array $data )
Создаёт окончательный SQL-запрос.
Параметры
- строка
$type - Тип запроса
- массив
$data - Данные запроса
Возвращает
строкаПереопределяет
DboSource::renderStatement() resultSet()source public
resultSet( PDOStatement $results )
Создаёт карту столбцов, содержащихся в результате
Параметры
- PDOStatement
$results - Результирующий набор, который нужно изменить.
update()source public
update( Model $model , array $fields array() , array $values null , mixed $conditions null )
Генерирует и выполняет оператор SQL UPDATE для заданной модели, полей и значений. Удаляет столбец Identity (первичный ключ) из данных обновления перед возвращением к родителю.
Параметры
-
Model$model - Модель для обновления.
- массив
$fieldsнеобязательный массив() - Поля для установки.
- массив
$valuesнеобязательный null - Значения для установки.
- смешанный
$conditionsнеобязательный null - Условие для использования.
Возвращает
массивПереопределяет
DboSource::update() value()source public
value( string $data , string $column null , boolean $null true )
Возвращает строку $data, заключённую в кавычки и экранированную, для использования в операторе SQL.
Параметры
- строка
$data - Строка, которая должна быть подготовлена для использования в операторе SQL
- строка
$columnнеобязательный null - Столбец, в который будут вставлены эти данные
- логическое значение
$nullнеобязательный true - Столбец допускает значения NULL
Возвращает
строкаСцитированные и экранированные данные
Переопределяет
DboSource::value() Методы, унаследованные от DboSource
__construct()source public
__construct( array $config null , boolean $autoConnect true )
Конструктор
Параметры
- массив
$configнеобязательный null - Массив с информацией о конфигурации источника данных.
- логическое значение
$autoConnectнеобязательный true - Необходимо ли автоматически подключаться к источнику данных.
Исключения
MissingConnectionExceptionпри невозможности подключения.
Переопределяет
DataSource::__construct() __destruct()source public
__destruct( )
Используется для сохранения в кэше результатов метода in-memory methodCache
Переопределяет
DataSource::__destruct() _beginNested()source protected
_beginNested( )
Начать вложенную транзакцию
Возвращает
логическое значение_buildFieldParameters()source protected
_buildFieldParameters( string $columnString , array $columnData , string $position )
Создать параметры поля в позиции
Параметры
- строка
$columnString - Частично созданная строка столбца
- массив
$columnData - Массив данных столбца.
- строка
$position - Тип позиции для использования. Обычно 'beforeDefault' или 'afterDefault'
Возвращает
строкаСозданный столбец с добавленными параметрами поля.
_commitNested()source protected
_commitNested( )
Завершить вложенную транзакцию
Возвращает
логическое значение_constructVirtualFields()source protected
_constructVirtualFields( Model $Model , string $alias , array $fields )
Преобразует виртуальные поля модели в выражения SQL для последующего извлечения
Параметры
-
Model$Model - Модель, для которой нужно получить виртуальные поля.
- строка
$alias - Псевдоним имени таблицы
- массив
$fields - Виртуальные поля, которые будут использоваться в запросе
Возвращает
массив_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необязательный массив() - Список классов, которые уже были отфильтрованы, чтобы их пропустить.
Возвращает
массивМассив результатов, отфильтрованных через $Model->afterFind.
_filterResultsInclusive()source protected
_filterResultsInclusive( array $resultSet , Model $Model , array $toBeFiltered array() )
Пропускает результаты ассоциаций через фильтры afterFind соответствующей модели.
Аналогично DboSource::_filterResults(), но фильтрует только указанные модели. Основная модель не может быть указана, так как этот вызов DboSource::_filterResults() внутри.
Параметры
- массив
$resultSet - $resultSet Ссылка на набор результатов, который нужно отфильтровать.
-
Model$Model - Экземпляр модели, для которой нужно действовать.
- массив
$toBeFilteredнеобязательный массив() - Список классов, которые нужно отфильтровать.
Возвращает
массивМассив результатов, отфильтрованных через $Model->afterFind.
_getJoins()source protected
_getJoins( Model $Model )
Возвращает массив условий SQL JOIN из ассоциаций модели.
Параметры
-
Model$Model - Модель, для которой нужно получить соединения.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 )
Объединить ассоциацию слияния в данные
Параметры
- массив
$data - $data Данные для объединения.
- массив
$merge - $merge Данные для объединения.
- строка
$association - Имя ассоциации для объединения.
- строка
$type - Тип ассоциации
- логическое значение
$selfJoinнеобязательный false - Является ли это самосоединением.
_mergeConditions()source protected
_mergeConditions( mixed $query , mixed $assoc )
Объединяет набор условий, представленных строками или массивами.
Параметры
- mixed
$query - Запрос, для которого объединяются условия.
- mixed
$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 )
Извлекает идентификатор модели.поле и оператор условия SQL из строки, форматирует и вставляет значения, а затем формирует фрагмент SQL.
Параметры
- строка
$key - Фрагмент SQL-ключа, содержащий поле и необязательный оператор SQL
- mixed
$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 )
Приводит поля модели к кавычкам.
Параметры
- строка
$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-запрос
- mixed
$data - Результат запроса $sql
- массив
$paramsнеобязательно array() - Параметры запроса, связанные в качестве значений.
alterSchema()source public
alterSchema( mixed $compare , string $table null )
Генерирует синтаксис изменения схемы из CakeSchema::compare()
Параметры
- mixed
$compare - Данные сравнения.
- строка
$tableнеобязательно null - Имя таблицы.
Возвращает
булевоbegin()source public
begin( )
Начать транзакцию
Возвращает
булевоTrue при успехе, false при неудаче (т.е. если база данных/модель не поддерживает транзакции или транзакция не начата).
Переопределяет
DataSource::begin() boolean()source public
boolean( mixed $data , boolean $quote false )
Преобразует между значениями PHP boolean и значениями boolean базы данных (моделируется)
Параметры
- mixed
$data - Значение для преобразования
- булево
$quoteнеобязательно false - Нужно ли преобразовать поле в строку.
Возвращает
строка|булевоПреобразованное значение boolean
buildAssociationQuery()source public
buildAssociationQuery( Model $Model , array $queryData )
Строит SQL-запрос.
Это всего лишь удобная обертка для DboSource::buildStatement().
Параметры
-
Model$Model - Модель, для которой строится запрос ассоциации.
- массив
$queryData - Массив данных запроса, содержащий ключи, аналогичные ключам в Model::find().
Возвращает
строкаСтрока, содержащая SQL-запрос.
См. также
DboSource::buildStatement()buildJoinStatement()source public
buildJoinStatement( array $join )
Строит и генерирует условие JOIN из массива. Обрабатывает окончательную очистку перед преобразованием.
Параметры
- массив
$join - Массив, определяющий условие JOIN в запросе.
Возвращает
строкаУсловие JOIN SQL, используемое в запросе.
См. также
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необязательно array() - Параметры функции (любые значения должны быть вручную обрамлены кавычками)
Возвращает
строкаФункция 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 фрагмент
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() disconnect()source public
disconnect( )
Отключается от базы данных.
Возвращает
логическоеВсегда true
dropSchema()source public
dropSchema( CakeSchema $schema , string $table null )
Генерирует SQL запрос "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необязательно array() - Опции для выполнения запроса.
- массив
$paramsнеобязательно array() - Значения для привязки к запросу.
Возвращает
смешанноеРесурс или объект, представляющий набор результатов, или 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 Массив информации о queryData, содержащий ключи, аналогичные Model::find().
- булево
$external - Ассоциация выполняется ли на внешнем источнике данных.
Возвращаемое значение
смешанноеСтрока, представляющая запрос. True, когда $external равен false, а ассоциация $type равна 'hasOne' или 'belongsTo'.
getConnection()source public
getConnection( )
Получить базовый объект соединения.
Возвращаемое значение
PDOgetConstraint()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необязательно массив() - параметры запроса, привязанные как значения
Возвращаемое значение
смешанноерезультаты запроса, если он кэширован, иначе 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.
Возвращаемое значение
строкаОператор 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Объект, представляющий идентификатор базы данных для использования в запросе
index()source public
index( string $model )
Возвращает массив индексов в заданном источнике данных.
Параметры
- строка
$model - Имя модели для проверки
Возвращает
массивПоля в таблице. Ключи — столбец и уникальность
introspectType()source public
introspectType( string $value )
Определяет тип данных из массива
Параметры
- строка
$value - Значение для определения типа данных.
Возвращает
строкаisConnected()source public
isConnected( )
Проверяет, подключен ли источник к базе данных.
Возвращает
логическое значениеTrue, если база данных подключена, иначе false
lastError()source public
lastError( PDOStatement $query null )
Возвращает отформатированное сообщение об ошибке от предыдущей операции с базой данных.
Параметры
- PDOStatement
$queryнеобязательный null - запрос для извлечения ошибки, если таковая имеется
Возвращает
строкаСообщение об ошибке с номером ошибки
lastInsertId()source public
lastInsertId( mixed $source null )
Возвращает ID, сгенерированный в ходе предыдущей операции INSERT.
Параметры
- смешанный
$sourceнеобязательный null - Источник для получения ID.
Возвращает
смешанныйПереопределяет
DataSource::lastInsertId() 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необязательный массив() - Значения, привязанные к запросу (подготовленные запросы)
name()source public
name( mixed $data )
Возвращает заключённое в кавычки имя $data для использования в SQL-запросе. Удаляет поля из SQL-функций перед заключением в кавычки.
Результаты этого метода хранятся в кэше памяти. Это повышает производительность, но, поскольку метод использует алгоритм хэширования, могут возникать коллизии. Установка DboSource::$cacheMethods в false отключит кэш памяти.
Параметры
- смешанный
$data Либо строка со столбцом для заключения в кавычки. Массив столбцов для заключения в кавычки или объект из DboSource::expression() или DboSource::identifier()
Возвращает
строкаSQL поле
nestedTransactionSupported()source public
nestedTransactionSupported( )
Проверяет, поддерживает ли сервер вложенные транзакции
Возвращает
логическое значение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 - Массив с информацией 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 Массив с информацией queryData, содержащий ключи, подобные Model::find().
- логическое значение
$external - Является ли запрос ассоциации для внешнего источника данных.
- массив
$resultSet - $resultSet Существующие результаты.
- целое число
$recursive - Количество уровней ассоциации.
- массив
$stack - Список соединённых моделей.
Возвращает
смешанныйВыбрасывает
CakeExceptionкогда результаты не могут быть созданы.
rawQuery()source public
rawQuery( string $sql , array $params array() )
Выполняет заданный SQL-запрос.
Параметры
- строка
$sql - SQL-оператор
- массив
$paramsнеобязательный массив() - Дополнительные параметры для запроса.
Возвращает
смешанныйРесурс или объект, представляющий набор результатов, или false при неудаче
readTableParameters()source public
readTableParameters( string $name )
Считывает дополнительные параметры таблицы
Параметры
- строка
$name - Имя таблицы для чтения.
Возвращает
массивreconnect()source public
reconnect( array $config array() )
Подключается к серверу базы данных с необязательными новыми настройками
Параметры
- массив
$configнеобязательный массив() - Массив, определяющий новые параметры конфигурации
Возвращает
логическое значениеTrue при успехе, false при неудаче
renderJoinStatement()source public
renderJoinStatement( array $data )
Отображает окончательное SQL-утверждение JOIN
Параметры
- массив
$data - Данные для создания утверждения JOIN.
Возвращает
строкаresetSequence()source public
resetSequence( string $table , string $column )
Сбросить последовательность на основе максимального значения $column. Полезно для сброса последовательностей после использования insertMulti().
Этот метод должен быть реализован источниками данных, требующими использования последовательностей.
Параметры
- строка
$table - Название таблицы для обновления.
- строка
$column - Столбец, используемый для сброса значения последовательности.
Возвращает
booleanУспех.
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.
truncate()source public
truncate( Model|string $table )
Удаляет все записи в таблице и сбрасывает счётчик автоинкрементируемого первичного ключа, если применимо.
Параметры
-
Model|строка$table - Строка или класс модели, представляющий таблицу, которая будет усечена
Возвращает
booleanSQL-утверждение TRUNCATE TABLE, false, если не применимо.
Методы, унаследованные от 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необязательно array() - Массив конфигурации
Методы, унаследованные от 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необязательно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_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
Возвращает
смешанныйВозвращает результат вызова метода
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необязательный массив() Если массив содержит ключ "return", он устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.
Возвращаемое значение
mixedЛогическое значение true или false при успехе/неудаче, или содержимое рендеренного действия, если в $extra задан ключ 'return'.
toString()source public
toString( )
Преобразование объекта в строку. Каждый класс может переопределять этот метод по мере необходимости.
Возвращаемое значение
строкаИмя этого класса
Подробности свойств
$_baseConfigsource
protected массив
Настройки базовой конфигурации для драйвера MS SQL
array(
'persistent' => true,
'host' => 'localhost\SQLEXPRESS',
'login' => '',
'password' => '',
'database' => 'cake',
'schema' => '',
'flags' => array()
) $_fieldMappingssource
protected массив
Создаёт отображение между псевдонимами полей и числовыми индексами. Обход ограничений драйвера SQL Server по длине имён столбцов (30 символов).
array()
$columnssource
public массив
Определение столбцов MS SQL
array(
'primary_key' => array('name' => 'IDENTITY (1, 1) NOT NULL'),
'string' => array('name' => 'nvarchar', 'limit' => '255'),
'text' => array('name' => 'nvarchar', 'limit' => 'MAX'),
'integer' => array('name' => 'int', 'formatter' => 'intval'),
'biginteger' => array('name' => 'bigint'),
'numeric' => array('name' => 'decimal', 'formatter' => 'floatval'),
'decimal' => array('name' => 'decimal', 'formatter' => 'floatval'),
'float' => array('name' => 'float', 'formatter' => 'floatval'),
'real' => array('name' => 'float', 'formatter' => 'floatval'),
'datetime' => array('name' => 'datetime', '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' => 'datetime', 'format' => 'H:i:s', 'formatter' => 'date'),
'date' => array('name' => 'datetime', 'format' => 'Y-m-d', 'formatter' => 'date'),
'binary' => array('name' => 'varbinary'),
'boolean' => array('name' => 'bit')
)
© 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-Sqlserver.html