Phalcon\Db\Adapter\AbstractAdapter
Пространство имен | Phalcon\Db\Adapter |
Использует | Phalcon\Db\DialectInterface, Phalcon\Db\ColumnInterface, Phalcon\Db\Enum, Phalcon\Db\Exception, Phalcon\Db\Index, Phalcon\Db\IndexInterface, Phalcon\Db\Reference, Phalcon\Db\ReferenceInterface, Phalcon\Db\RawValue, Phalcon\Events\EventsAwareInterface, Phalcon\Events\ManagerInterface |
Реализует | AdapterInterface, EventsAwareInterface |
Базовый класс для адаптеров Phalcon\Db
Свойства
/** * идентификатор соединения */ protected static connectionConsecutive = 0; /** * Идентификатор активного соединения * * @var long */ protected connectionId; /** * Дескриптор, используемый для подключения к базе данных */ protected descriptor; /** * Диалектный экземпляр */ protected dialect; /** * Название используемого диалекта * * @var string */ protected dialectType; /** * Менеджер событий * * @var Phalcon\Events\Manager */ protected eventsManager; /** * Активные типы привязки SQL * * @var array */ protected sqlBindTypes; /** * Активная инструкция SQL * * @var string */ protected sqlStatement; /** * Активные переменные параметров привязки SQL * * @var array */ protected sqlVariables; /** * Текущий уровень транзакции */ protected transactionLevel = 0; /** * Поддерживает ли база данных транзакции с точками сохранения */ protected transactionsWithSavepoints = false; /** * Тип системы баз данных, для которой используется адаптер * * @var string */ protected type;
Методы
public function __construct( array $descriptor );
Phalcon\Db\Adapter конструктор
public function addColumn( string $tableName, string $schemaName, ColumnInterface $column ): bool;
Добавляет столбец в таблицу
public function addForeignKey( string $tableName, string $schemaName, ReferenceInterface $reference ): bool;
Добавляет внешний ключ к таблице
public function addIndex( string $tableName, string $schemaName, IndexInterface $index ): bool;
Добавляет индекс к таблице
public function addPrimaryKey( string $tableName, string $schemaName, IndexInterface $index ): bool;
Добавляет первичный ключ к таблице
public function createSavepoint( string $name ): bool;
Создает новую точку сохранения
public function createTable( string $tableName, string $schemaName, array $definition ): bool;
Создать таблицу
public function createView( string $viewName, array $definition, string $schemaName = null ): bool;
Создает представление
public function delete( mixed $table, mixed $whereCondition = null, mixed $placeholders = null, mixed $dataTypes = null ): bool;
Удаляет данные из таблицы с помощью пользовательского синтаксиса RBDM SQL
// Удаление существующего робота $success = $connection->delete( "robots", "id = 101" ); // Следующее предложение SQL генерируется DELETE FROM `robots` WHERE `id` = 101
public function describeIndexes( string $table, string $schema = null ): IndexInterface[];
Таблица индексов
print_r( $connection->describeIndexes("robots_parts") );
public function describeReferences( string $table, string $schema = null ): ReferenceInterface[];
Список ссылок на таблицу
print_r( $connection->describeReferences("robots_parts") );
public function dropColumn( string $tableName, string $schemaName, string $columnName ): bool;
Удаляет столбец из таблицы
public function dropForeignKey( string $tableName, string $schemaName, string $referenceName ): bool;
Удаление внешнего ключа из таблицы
public function dropIndex( string $tableName, string $schemaName, mixed $indexName ): bool;
Удаление индекса из таблицы
public function dropPrimaryKey( string $tableName, string $schemaName ): bool;
Отбрасывает первичный ключ таблицы
public function dropTable( string $tableName, string $schemaName = null, bool $ifExists = bool ): bool;
Удаление таблицы из схемы / базы данных
public function dropView( string $viewName, string $schemaName = null, bool $ifExists = bool ): bool;
Отбрасывает взгляд
public function escapeIdentifier( mixed $identifier ): string;
Экранирует имя столбца / таблицы / схемы
$escapedTable = $connection->escapeIdentifier( "robots" ); $escapedTable = $connection->escapeIdentifier( [ "store", "robots", ] );
public function fetchAll( string $sqlQuery, int $fetchMode = static-constant-access, mixed $bindParams = null, mixed $bindTypes = null ): array;
Сбрасывает полный результат запроса в массив
// Получение всех роботов только с ассоциативными индексами $robots = $connection->fetchAll( "SELECTFROM robots", \Phalcon\Db\Enum::FETCH_ASSOC ); foreach ($robots as $robot) { print_r($robot); } // Получение всех роботов, которые содержат слово "robot" в названии $robots = $connection->fetchAll( "SELECTFROM robots WHERE name LIKE :name", \Phalcon\Db\Enum::FETCH_ASSOC, [ "name" => "%robot%", ] ); foreach($robots as $robot) { print_r($robot); }
public function fetchColumn( string $sqlQuery, array $placeholders = [], mixed $column = int ): string | bool;
Returns the n’th field of first row in a SQL query result
// Идет подсчет роботов $robotsCount = $connection->fetchColumn("SELECT count(*) FROM robots"); print_r($robotsCount); // Получение имени последнего редактируемого робота $robot = $connection->fetchColumn( "SELECT id, name FROM robots order by modified desc", 1 ); print_r($robot);
public function fetchOne( string $sqlQuery, mixed $fetchMode = static-constant-access, mixed $bindParams = null, mixed $bindTypes = null ): array;
Возвращает первую строку в результате SQL-запроса
// Получение первого робота $robot = $connection->fetchOne("SELECTFROM robots"); print_r($robot); // Получение первого робота только с ассоциативными индексами $robot = $connection->fetchOne( "SELECTFROM robots", \Phalcon\Db\Enum::FETCH_ASSOC ); print_r($robot);
public function forUpdate( string $sqlQuery ): string;
Возвращает SQL, измененный с помощью предложения FOR UPDATE
public function getColumnDefinition( ColumnInterface $column ): string;
Возвращает определение столбца SQL из столбца
public function getColumnList( mixed $columnList ): string;
Получает список столбцов
public function getConnectionId(): string;
Возвращает уникальный идентификатор активного соединения
public function getDefaultIdValue(): RawValue;
Returns the default identity value to be inserted in an identity column
// Вставка нового робота с допустимым значением по умолчанию для столбца "id" $success = $connection->insert( "robots", [ $connection->getDefaultIdValue(), "Astro Boy", 1952, ], [ "id", "name", "year", ] );
public function getDefaultValue(): RawValue;
Возвращает значение по умолчанию, чтобы заставить RBDM использовать значение по умолчанию, объявленное в определении таблицы
// Вставка нового робота с допустимым значением по умолчанию для столбца year' $success = $connection->insert( "robots", [ "Astro Boy", $connection->getDefaultValue() ], [ "name", "year", ] );
public function getDescriptor(): array;
Возвращаемый дескриптор, используемый для подключения к активной базе данных
public function getDialect(): DialectInterface;
Возвращает экземпляр внутреннего диалекта
public function getDialectType(): string
public function getEventsManager(): ManagerInterface;
Возвращает внутренний менеджер событий
public function getNestedTransactionSavepointName(): string;
Возвращает имя точки сохранения, используемое для вложенных транзакций
public function getRealSQLStatement(): string;
Активный оператор SQL в объекте без привязки параметров replace
public function getSQLBindTypes(): array;
Активный оператор SQL в объекте
public function getSQLStatement(): string;
Активный оператор SQL в объекте
public function getSqlVariables(): array
public function getType(): string
public function insert( string $table, array $values, mixed $fields = null, mixed $dataTypes = null ): bool;
Вставка данных в таблицу с использованием пользовательского синтаксиса SQL СУБД
// Установка нового робота $success = $connection->insert( "robots", ["Astro Boy", 1952], ["name", "year"] ); // Следующее предложение SQL отправляется в систему базы данных INSERT INTO `robots` (`name`, `year`) VALUES ("Astro boy", 1952);
public function insertAsDict( string $table, mixed $data, mixed $dataTypes = null ): bool;
Вставка данных в таблицу с использованием пользовательского синтаксиса RBDM SQL
// Установка нового робота $success = $connection->insertAsDict( "robots", [ "name" => "Astro Boy", "year" => 1952, ] ); // Следующее предложение SQL отправляется в систему базы данных INSERT INTO `robots` (`name`, `year`) VALUES ("Astro boy", 1952);
public function isNestedTransactionsWithSavepoints(): bool;
Возвращает, если вложенные транзакции должны использовать точки сохранения
public function limit( string $sqlQuery, int $number ): string;
Добавляет предложение LIMIT к аргументу $sqlQuery
echo $connection->limit("SELECTFROM robots", 5);
public function listTables( string $schemaName = null ): array;
Список всех таблиц в базе данных
print_r( $connection->listTables("blog") );
public function listViews( string $schemaName = null ): array;
Список всех представлений в базе данных
print_r( $connection->listViews("blog") );
public function modifyColumn( string $tableName, string $schemaName, ColumnInterface $column, ColumnInterface $currentColumn = null ): bool;
Изменяет столбец таблицы на основе определения
public function releaseSavepoint( string $name ): bool;
Релизы с заданной точкой сохранения
public function rollbackSavepoint( string $name ): bool;
Откаты с учетом сохранения
public function setDialect( DialectInterface $dialect );
Задает диалект, используемый для создания SQL
public function setEventsManager( ManagerInterface $eventsManager ): void;
Устанавливает менеджер событий
public function setNestedTransactionsWithSavepoints( bool $nestedTransactionsWithSavepoints ): AdapterInterface;
Установить, должны ли вложенные транзакции использовать точки сохранения
public function sharedLock( string $sqlQuery ): string;
Возвращает SQL модифицированный с предложением LOCK IN SHARE MODE
public function supportSequences(): bool;
Проверьте, требуется ли системе базы данных последовательность для получения автоматических числовых значений
public function tableExists( string $tableName, string $schemaName = null ): bool;
Генерирует SQL-проверку на наличие схемы.таблицы
var_dump( $connection->tableExists("blog", "posts") );
public function tableOptions( string $tableName, string $schemaName = null ): array;
Получает параметры создания из таблицы
print_r( $connection->tableOptions("robots") );
public function update( string $table, mixed $fields, mixed $values, mixed $whereCondition = null, mixed $dataTypes = null ): bool;
Обновление данных в таблице с использованием пользовательского синтаксиса RBDM SQL
// Обновление существующего робота $success = $connection->update( "robots", ["name"], ["New Astro Boy"], "id = 101" ); // Следующее предложение SQL отправляется в систему базы данных UPDATE `robots` SET `name` = "Astro boy" WHERE id = 101 // Обновление существующего робота с условием массива и $dataTypes $success = $connection->update( "robots", ["name"], ["New Astro Boy"], [ "conditions" => "id = ?", "bind" => [$some_unsafe_id], "bindTypes" => [PDO::PARAM_INT], // используйте только если вы используете параметр $dataTypes ], [ PDO::PARAM_STR ] );
Внимание! Если $whereCondition-строка, то она не экранирована.
public function updateAsDict( string $table, mixed $data, mixed $whereCondition = null, mixed $dataTypes = null ): bool;
Обновляет данные в таблице с помощью пользовательского синтаксиса RBDM SQL другой, более удобный синтаксис
// Обновление существующего робота $success = $connection->updateAsDict( "robots", [ "name" => "New Astro Boy", ], "id = 101" ); // Следующее предложение SQL отправляется в систему базы данных UPDATE `robots` SET `name` = "Astro boy" WHERE id = 101
public function useExplicitIdValue(): bool;
Проверьте, требуется ли системе базы данных явное значение для столбцов идентификаторов
public function viewExists( string $viewName, string $schemaName = null ): bool;
Генерирует SQL-проверку на наличие схемы.вид
var_dump( $connection->viewExists("active_users", "posts") );