Source on GitHub

Пространство имен 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")
);