Spec-Zone.ru › CakePHP 2.9

Класс Sqlserver

Слой Dbo для официального драйвера SQLServer Майкрософт

Слой Dbo для MS SQL Server 2005 и выше. Требуется включение расширения pdo_sqlsrv.

CakeObject
Расширяется DataSource
Расширяется DboSource
Расширяется Sqlserver
Пакет: Cake\Model\Datasource\Database
Ссылка: http://www.php.net/manual/en/ref.pdo-sqlsrv.php
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Model/Datasource/Database/Sqlserver.php

Краткое описание констант

  • string

    ROW_COUNTER
    '_cake_page_rownum_'

Краткое описание свойств

  • $_baseConfig protected
    array
    Базовые параметры конфигурации для драйвера MS SQL
  • $_fieldMappings protected
    array

    Создает отображение между псевдонимами полей и числовыми индексами. Обход ограничений драйвера SQL Server на длину имен столбцов (30 символов).

  • $_lastAffected protected
    mixed
    Хранение последнего затронутого значения
  • $columns public
    array
    Определение столбца MS SQL
  • $description public
    string
    Описание драйвера
  • $endQuote public
    string
    Конечный символ кавычек для идентификаторов в кавычках
  • $startQuote public
    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
    Генерирует оператор "drop table" для указанной таблицы
  • _execute() protected
    Выполняет заданный SQL-запрос.
  • _getPrimaryKey() protected
    Убеждается, что будет возвращён первичный ключ
  • buildColumn() public
    Генерирует строку схемы столбца, специфичную для базы данных
  • buildIndex() public
    Форматирует индексы для создания таблицы
  • column() public
    Преобразует типы столбцов уровня базы данных в базовые типы
  • connect() public
    Подключается к базе данных, используя параметры в заданном массиве конфигурации.
  • create() public

    Генерирует и выполняет SQL-запрос INSERT для заданной модели, полей и значений. Удаляет столбец Identity (первичный ключ) из обновляемых данных перед возвратом в родительский элемент, если значение пустое.

  • 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
    Возвращает оператор limit в правильном формате для конкретной базы данных.
  • listSources() public
    Возвращает массив источников (таблиц) в базе данных.
  • read() public

    Возвращает массив всех строк результатов для данного SQL-запроса. Возвращает false, если совпадений нет.

  • renderStatement() public
    Строит окончательный SQL-запрос
  • resultSet() public
    Строит отображение столбцов, содержащихся в результате
  • update() public

    Генерирует и выполняет SQL-запрос UPDATE для заданной модели, полей и значений. Удаляет столбец Identity (первичный ключ) из обновляемых данных перед возвратом в родительский элемент.

  • value() public
    Возвращает строку, заключённую в кавычки и экранированную, из $data для использования в SQL-запросе.

Подробное описание методов

_dropTable()source protected

_dropTable( type $table )

Генерирует оператор "drop 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()
END_OF_DOCUMENT_MARKER

buildIndex()source public

buildIndex( array $indexes , string $table null )

Форматировать индексы для создания таблицы

Параметры

массив $indexes
Индексы для построения
строка $table необязательно null
Таблица, для которой необходимо создать индексы.

Возвращает

строка

Переопределяет

DboSource::buildIndex()

column()source public

column( mixed $real )

Преобразует типы столбцов уровня базы данных в базовые типы

Параметры

смешанный $real

Либо строковое значение типа поля, либо объект Result из Sqlserver::describe()

Возвращает

строка
Абстрактный тип столбца (например, "строка")

Переопределяет

DataSource::column()

connect()source public

connect( )

Подключается к базе данных с использованием опций в заданном массиве конфигурации.

Возвращает

логическое значение
True, если база данных подключена, иначе false

Вызывает

MissingConnectionException

create()source public

create( Model $model , array $fields null , array $values null )

Генерирует и выполняет оператор SQL INSERT для заданной модели, полей и значений. Удаляет столбец Identity (первичный ключ) из данных обновления перед возвращением родительскому элементу, если значение пустое.

Параметры

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 )

Возвращает количество затронутых строк в предыдущей операции с базой данных. Если предыдущей операции не существует, возвращает false.

Параметры

смешанный $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 limit/offset

Переопределяет

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. Возвращает false, если строк не найдено.

Параметры

Model $model
Модель для чтения
массив $queryData необязательно array()
Данные запроса
целое число $recursive необязательно null
Количество уровней для перехода.

Возвращает

массив|false
Массив строк результата или false, если строк не найдено

Переопределяет

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
Модель, для которой нужно получить JOIN-условия.

Возвращает

массив

_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
Имена ассоциаций.

Возвращает

массив
END_OF_DOCUMENT_MARKER

_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
Условие для приведения к кавычкам.

Возвращает

строка
или ложь, если совпадений нет

_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()
параметры запроса, привязанные в качестве значений

alterSchema()source public

alterSchema( mixed $compare , string $table null )

Генерирует синтаксис изменения из CakeSchema::compare()

Параметры

смешанный $compare
Данные сравнения.
строка $table необязательный null
Имя таблицы.

Возвращает

булево

begin()source public

begin( )

Начать транзакцию

Возвращает

булево

Истина при успехе, ложь при неудаче (например, если база данных/модель не поддерживает транзакции или транзакция не начата).


Переопределяет

DataSource::begin()

boolean()source public

boolean( mixed $data , boolean $quote false )

Перевод между булевыми значениями PHP и булевыми значениями базы данных (имитируется)

Параметры

смешанный $data
Значение для перевода
булево $quote необязательный false
Преобразовать ли поле в строку.

Возвращает

строка|булево
Преобразованное булево значение

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 в запросе.

Возвращает

строка
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 при неудаче, либо значение, если оно установлено.
END_OF_DOCUMENT_MARKER

cacheMethodFilter()source public

cacheMethodFilter( string $method , string $key , mixed $value )

Фильтры для применения к результатам name и fields. Если фильтр для данного метода не возвращает true, то результат не добавляется в кэш памяти.

Примеры:

// For method fields, do not cache values that contain floats
if ($method === 'fields') {
    $hasFloat = preg_grep('/(\d+)?\.\d+/', $value);

    return count($hasFloat) === 0;
}

return true;
// For method name, do not cache values that have the name created
if ($method === 'name') {
    return preg_match('/^`created`$/', $value) !== 1;
}

return true;
// For method name, do not cache values that have the key 472551d38e1f8bbc78d7dfd28106166f
if ($key === '472551d38e1f8bbc78d7dfd28106166f') {
    return false;
}

return true;

Параметры

строка $method
Имя метода, который будет кэшироваться.
строка $key
Имя ключа для операции кэширования.
смешанное значение $value
Значение для кэширования в памяти.

Возвращает

boolean
Будет ли кэшироваться

cacheMethodHasher()source public

cacheMethodHasher( string $value )

Хэширует заданное значение.

Кэширование методов использует md5 (по умолчанию) для создания ключей кэша. Если у вас возникают проблемы с коллизиями, попробуйте другой алгоритм хэширования или установите DboSource::$cacheMethods в false.

Параметры

строка $value
Значение для хэширования

Возвращает

строка
Хэшированное значение

См. также

http://php.net/manual/en/function.hash-algos.php
http://softwareengineering.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed

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( )

Подтверждает транзакцию

Возвращает

boolean

True при успехе, false при ошибке (например, если база данных/модель не поддерживает транзакции или транзакция не начата).


Переопределяет

DataSource::commit()

conditionKeysToString()source public

conditionKeysToString( array $conditions , boolean $quoteValues true , Model $Model null )

Создает условие WHERE путем разбора массива условий. Используется методом DboSource::conditions().

Параметры

массив $conditions
Массив или строка условий
boolean $quoteValues необязательно true
Если true, значения должны быть заключены в кавычки
Model $Model необязательно null
Ссылка на экземпляр модели, выполняющий запрос

Возвращает

строка
SQL фрагмент

conditions()source public

conditions( mixed $conditions , boolean $quoteValues true , boolean $where true , Model $Model null )

Создает условие WHERE путем разбора переданных данных условий. Если предоставлены массив или строка условий, эти условия будут обработаны и заключены в кавычки. Если предоставлен boolean, он будет преобразован в целое число в качестве условия. Null вернет 1 = 1.

Результаты этого метода хранятся в кэше памяти. Это повышает производительность, но, поскольку метод использует алгоритм хэширования, могут возникать коллизии. Установка DboSource::$cacheMethods в false отключит кэш памяти.

Параметры

смешанное значение $conditions
Массив или строка условий или любое значение.
boolean $quoteValues необязательно true
Если true, значения должны быть заключены в кавычки
boolean $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
Модель для получения условий.
строка|массив|boolean $conditions

Массив условий, строка условий, null или false. Если массив условий или строка условий, эти условия будут возвращены. В остальных случаях будет проверена существование модели. Если модели нет, будет возвращен null или false, в зависимости от введенного значения.

boolean $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
Условия для использования. Если пусто, будет использоваться первичный ключ модели.

Возвращает

boolean
Успех

Переопределяет

DataSource::delete()

disconnect()source public

disconnect( )

Отключается от базы данных.

Возвращает

boolean
Всегда 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()

flushQueryCache()source public

flushQueryCache( )

Очищает кэши запросов.

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'.


getConnection()source public

getConnection( )

Получить базовый объект соединения.

Возвращаемые значения

PDO

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 дополнительно массив()
параметры запроса, привязанные как значения

Возвращаемые значения

смешанный тип
результаты запроса, если он кэширован, в противном случае 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.
END_OF_DOCUMENT_MARKER

hasAny()source public

hasAny( Model $Model , string $sql )

Проверяет, содержит ли указанная таблица хотя бы одну запись, соответствующую заданному SQL-запросу.

Параметры

Model $Model
Модель для поиска
строка $sql
SQL-фрагмент WHERE (только условие, без части "WHERE")

Возвращаемое значение

boolean
True, если в таблице есть соответствующая запись, иначе false

hasResult()source public

hasResult( )

Проверяет, является ли результат корректным.

Возвращаемое значение

boolean
True, если результат корректный, иначе false

identifier()source public

identifier( string $identifier )

Возвращает объект для представления идентификатора базы данных в запросе. Объекты выражений не проверяются и не экранируются.

Параметры

строка $identifier
SQL-выражение, используемое в качестве идентификатора

Возвращаемое значение

stdClass
Объект, представляющий идентификатор базы данных для использования в запросе

index()source public

index( string $model )

Возвращает массив индексов в заданном источнике данных.

Параметры

строка $model
Имя модели для проверки

Возвращаемое значение

array
Поля в таблице. Ключи — столбец и уникальность

introspectType()source public

introspectType( string $value )

Определяет тип данных массива

Параметры

строка $value
Значение для определения типа данных.

Возвращаемое значение

строка

isConnected()source public

isConnected( )

Проверяет, подключен ли источник к базе данных.

Возвращаемое значение

boolean
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 необязательно array()
Значения, привязанные к запросу (предварительно подготовленные запросы)

name()source public

name( mixed $data )

Возвращает заключенное в кавычки имя $data для использования в SQL-запросе. Удаляет поля из SQL-функций перед заключением в кавычки.

Результаты этого метода сохраняются в кэше памяти. Это повышает производительность, но, поскольку метод использует алгоритм хеширования, могут возникать коллизии. Установка DboSource::$cacheMethods в false отключит кэш памяти.

Параметры

смешанный $data

Строка со столбцом для заключения в кавычки. Массив столбцов для заключения в кавычки или объект из DboSource::expression() или DboSource::identifier()

Возвращаемое значение

строка
SQL-поле

nestedTransactionSupported()source public

nestedTransactionSupported( )

Проверка поддержки вложенных транзакций на сервере.

Возвращаемое значение

boolean

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().
boolean $external
Признак, является ли запрос ассоциации для внешнего источника данных.
массив $resultSet
$resultSet — существующие результаты.
целое число $recursive
Количество уровней ассоциации.
массив $stack
Список соединенных моделей.

Возвращаемое значение

смешанный

Исключения

CakeException
при невозможности создания результатов.

rawQuery()source public

rawQuery( string $sql , array $params array() )

Выполняет указанный SQL-запрос.

Параметры

строка $sql
SQL-запрос
массив $params необязательно array()
Дополнительные параметры для запроса.

Возвращаемое значение

смешанный
Ресурс или объект, представляющий набор результатов, или false при ошибке

readTableParameters()source public

readTableParameters( string $name )

Чтение дополнительных параметров таблицы.

Параметры

строка $name
Имя таблицы для чтения.

Возвращаемое значение

массив
END_OF_DOCUMENT_MARKER

reconnect()source public

reconnect( array $config array() )

Подключается к серверу базы данных с необязательными новыми настройками

Параметры

массив $config необязательно array()
Массив, определяющий новые параметры конфигурации

Возвращаемое значение

boolean
Истина при успехе, ложь при ошибке

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( )

Откат транзакции

Возвращаемое значение

boolean

Истина при успехе, ложь при неудаче (например, если база данных/модель не поддерживает транзакции или транзакция не начата).


Переопределяет

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
Строка или класс модели, представляющий таблицу, которая должна быть усечена

Возвращаемое значение

boolean
SQL-запрос TRUNCATE TABLE, ложь, если не применимо.

Методы, унаследованные от 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
Стек контекста.

Возвращаемое значение

смешанный
Строка данных запроса с замененными маркерами или ложь при ошибке.

setConfig()source public

setConfig( array $config array() )

Устанавливает конфигурацию для DataSource. Объединяет информацию из $config с _baseConfig и существующим свойством $config.

Параметры

массив $config необязательно array()
Массив конфигурации

Методы, унаследованные от CakeObject

_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
Успех записи в журнал
END_OF_DOCUMENT_MARKER

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( )

Преобразование CakeObject в строку. Каждый класс может переопределять этот метод по мере необходимости.

Возвращает

строка
Имя этого класса

Подробное описание свойств

$_baseConfigsource

protected массив

Настройки базовой конфигурации для драйвера MS SQL

array(
    'persistent' => true,
    'host' => 'localhost\SQLEXPRESS',
    'login' => '',
    'password' => '',
    'database' => 'cake',
    'schema' => '',
    'flags' => array()
)

$_fieldMappingssource

protected массив

Создаёт отображение между псевдонимами полей и числовыми индексами. Обход ограничений SQL Server на длину имени столбца (30 символов).

array()

$_lastAffectedsource

protected смешанный тип

Хранение последнего затронутого значения

false

$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')
)

$descriptionsource

public строка

Описание драйвера

"SQL Server DBO Driver"

$endQuotesource

public строка

Закрывающий символ кавычек для цитируемых идентификаторов

"]"

$startQuotesource

public строка

Начальный символ кавычек для цитируемых идентификаторов

"["

© 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.
https://api.cakephp.org/2.9/class-Sqlserver.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API