Абстрактный класс Phalcon\Db\Adapter

Реализует Phalcon\Db\AdapterInterface, Phalcon\Events\EventsAwareInterface

Source on GitHub

Базовый класс для адаптеров Phalcon\Db

Методы

public getDialectType ()

Название используемого диалекта

public getType ()

Тип системы баз данных, для которой используется адаптер

public getSqlVariables ()

Активные переменные параметров привязки SQL

public __construct (array $descriptor)

Phalcon\Db\Adapter конструктор

public setEventsManager (Phalcon\Events\ManagerInterface $eventsManager)

Устанавливает менеджер событий

public getEventsManager ()

Возвращает внутренний менеджер событий

public setDialect (Phalcon\Db\DialectInterface $dialect)

Задает диалект, используемый для создания SQL

public getDialect ()

Возвращает внутренний экземпляр диалекта

public fetchOne (mixed $sqlQuery, [mixed $fetchMode], [mixed $bindParams], [mixed $bindTypes])

Возвращает первую строку в результате запроса SQL

<?php

// Получение первого робота
$robot = $connection->fetchOne("SELECT * FROM robots");
print_r($robot);

// Получение первого робота только с ассоциативными индексами
$robot = $connection->fetchOne("SELECT * FROM robots", \Phalcon\Db::FETCH_ASSOC);
print_r($robot);

public array fetchAll (string $sqlQuery, [int $fetchMode], [array $bindParams], [array $bindTypes])

Выводит полный результат запроса в массив

<?php

// Получение всех роботов только с ассоциативными индексами
$robots = $connection->fetchAll(
    "SELECT * FROM robots",
    \Phalcon\Db::FETCH_ASSOC
);

foreach ($robots as $robot) {
    print_r($robot);
}

 // Получение всех роботов, содержащих слово "robot" с именем
$robots = $connection->fetchAll(
    "SELECT * FROM robots WHERE name LIKE :name",
    \Phalcon\Db::FETCH_ASSOC,
    [
        "name" => "%robot%",
    ]
);
foreach($robots as $robot) {
    print_r($robot);
}

public string | fetchColumn* (string $sqlQuery, [array $placeholders], [int | string* $column])

Возвращает N-е поле первой строки в результате SQL-запроса

<?php

// Получение количества роботов
$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 boolean insert (string | array $table, array $values, [array $fields], [array $dataTypes])

Вставка данных в таблицу с использованием пользовательского синтаксиса SQL СУБД

<?php

// Вставка нового робота
$success = $connection->insert(
    "robots",
    ["Astro Boy", 1952],
    ["name", "year"]
);

// Следующее предложение SQL отправляется в систему баз данных
// INSERT INTO `robots` (`name`, `year`) VALUES ("Astro boy", 1952);

public boolean insertAsDict (string $table, array $data, [array $dataTypes])

Вставляет данные в таблицу, используя пользовательские RBDM синтаксис SQL

<?php

// Вставка нового робота
$success = $connection->insertAsDict(
    "robots",
    [
        "name" => "Astro Boy",
        "year" => 1952,
    ]
);

// Следующее предложение SQL отправляется в систему баз данных
// INSERT INTO `robots` (`name`, `year`) VALUES ("Astro boy", 1952);

public boolean update (string | array $table, array $fields, array $values, [string | array $whereCondition], [array $dataTypes])

Обновление данных в таблице с помощью пользовательского синтаксиса RBDM SQL

<?php

// Обновление существующего робота
$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], // use only if you use $dataTypes param
    ],
    [
        PDO::PARAM_STR
    ]
);

Внимание! Если $whereCondition является строкой, она не экранируется.

public boolean updateAsDict (string $table, array $data, [string $whereCondition], [array $dataTypes])

Обновление данных в таблице с помощью пользовательского синтаксиса RBDM SQL другой, более удобный синтаксис

<?php

// Обновление существующего робота
$success = $connection->updateAsDict(
    "robots",
    [
        "name" => "New Astro Boy",
    ],
    "id = 101"
);

// Следующее предложение SQL отправляется в систему баз данных
// UPDATE `robots` SET `name` = "Astro boy" WHERE id = 101

public boolean delete (string | array $table, [string $whereCondition], [array $placeholders], [array $dataTypes])

Удаляет данные из таблицы с помощью пользовательского синтаксиса RBDM SQL

<?php

// Deleting existing robot
$success = $connection->delete(
    "robots",
    "id = 101"
);

// Next SQL sentence is generated
// DELETE FROM `robots` WHERE `id` = 101

public escapeIdentifier (array | string $identifier)

Экранирование имени столбца/таблицы/схемы

<?php

$escapedTable = $connection->escapeIdentifier(
    "robots"
);

$escapedTable = $connection->escapeIdentifier(
    [
        "store",
        "robots",
    ]
);

public string getColumnList (array $columnList)

Получает список столбцов

public limit (mixed $sqlQuery, mixed $number)

Добавляет предложение LIMIT к $sqlQuery аргументу

<?php

echo $connection->limit("SELECT * FROM robots", 5);

public tableExists (mixed $tableName, [mixed $schemaName])

Генерирует проверку SQL для существования schema.table

<?php

var_dump(
    $connection->tableExists("blog", "posts")
);

public viewExists (mixed $viewName, [mixed $schemaName])

Генерирует проверку SQL для существования schema.view

<?php

var_dump(
    $connection->viewExists("active_users", "posts")
);

public forUpdate (mixed $sqlQuery)

Возвращает SQL, измененный предложением FOR UPDATE

public sharedLock (mixed $sqlQuery)

Возвращает SQL, измененный с помощью предложения LOCK IN SHARE MODE

public createTable (mixed $tableName, mixed $schemaName, array $definition)

Создать таблицу

public dropTable (mixed $tableName, [mixed $schemaName], [mixed $ifExists])

Удаляет таблицу из схемы или базы данных

public createView (mixed $viewName, array $definition, [mixed $schemaName])

Создает представление

public dropView (mixed $viewName, [mixed $schemaName], [mixed $ifExists])

Отбрасывает представление

public addColumn (mixed $tableName, mixed $schemaName, Phalcon\Db\ColumnInterface $column)

Добавление столбца в таблицу

public modifyColumn (mixed $tableName, mixed $schemaName, Phalcon\Db\ColumnInterface $column, [Phalcon\Db\ColumnInterface $currentColumn])

Изменяет столбец таблицы на основе определения

public dropColumn (mixed $tableName, mixed $schemaName, mixed $columnName)

Удаление столбца из таблицы

public addIndex (mixed $tableName, mixed $schemaName, Phalcon\Db\IndexInterface $index)

Добавление индекса в таблицу

public dropIndex (mixed $tableName, mixed $schemaName, mixed $indexName)

Удаление индекса из таблицы

public addPrimaryKey (mixed $tableName, mixed $schemaName, Phalcon\Db\IndexInterface $index)

Добавление первичного ключа в таблицу

public dropPrimaryKey (mixed $tableName, mixed $schemaName)

Отбрасывает первичный ключ таблицы

public addForeignKey (mixed $tableName, mixed $schemaName, Phalcon\Db\ReferenceInterface $reference)

Добавление внешнего ключа в таблицу

public dropForeignKey (mixed $tableName, mixed $schemaName, mixed $referenceName)

Удаление внешнего ключа из таблицы

public getColumnDefinition (Phalcon\Db\ColumnInterface $column)

Возвращает определение столбца SQL из столбца

public listTables ([mixed $schemaName])

Список всех таблиц в базе данных

<?php

print_r(
    $connection->listTables("blog")
);

public listViews ([mixed $schemaName])

Список всех представлений базы данных

public Phalcon\Db\Index describeIndexes (string $table, [string $schema])

Список индексов таблицы

<?php

print_r(
    $connection->describeIndexes("robots_parts")
);

public describeReferences (mixed $table, [mixed $schema])

Список ссылок на таблицу

<?php

print_r(
    $connection->describeReferences("robots_parts")
);

public tableOptions (mixed $tableName, [mixed $schemaName])

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

<?php

print_r(
    $connection->tableOptions("robots")
);

public createSavepoint (mixed $name)

Создает новую точку сохранения

public releaseSavepoint (mixed $name)

Релизы с учетом точки сохранения

public rollbackSavepoint (mixed $name)

Откаты с учетом точки сохранения

public setNestedTransactionsWithSavepoints (mixed $nestedTransactionsWithSavepoints)

Установить, должны ли вложенные транзакции использовать точки сохранения

public isNestedTransactionsWithSavepoints ()

Возвращает, если вложенные транзакции должны использовать точки сохранения

public getNestedTransactionSavepointName ()

Возвращает имя точки сохранения для вложенных транзакций

public getDefaultIdValue ()

Возвращает значение идентификатора по умолчанию для вставки в столбец идентификаторов

<?php

// Вставка нового робота с допустимым значением по умолчанию для столбца 'id'
$success = $connection->insert(
    "robots",
    [
        $connection->getDefaultIdValue(),
        "Astro Boy",
        1952,
    ],
    [
        "id",
        "name",
        "year",
    ]
);

public getDefaultValue ()

Возвращает значение по умолчанию, чтобы RBDM использовал значение по умолчанию, объявленное в определении таблицы

<?php

// Вставка нового робота с допустимым значением по умолчанию для столбца 'year'
$success = $connection->insert(
    "robots",
    [
        "Astro Boy",
        $connection->getDefaultValue()
    ],
    [
        "name",
        "year",
    ]
);

public supportSequences ()

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

public useExplicitIdValue ()

Проверяет, требует ли система базы данных явное значение для столбцов идентификации

public getDescriptor ()

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

public string getConnectionId ()

Получает уникальный идентификатор активного соединения

public getSQLStatement ()

Активный оператор SQL в объекте

public getRealSQLStatement ()

Активный оператор SQL в объекте без замены связанных параметров

public array getSQLBindTypes ()

Активный оператор SQL в объекте

abstract public connect ([array $descriptor]) inherited from Phalcon\Db\AdapterInterface

...

abstract public query (mixed $sqlStatement, [mixed $placeholders], [mixed $dataTypes]) inherited from Phalcon\Db\AdapterInterface

...

abstract public execute (mixed $sqlStatement, [mixed $placeholders], [mixed $dataTypes]) inherited from Phalcon\Db\AdapterInterface

...

abstract public affectedRows () inherited from Phalcon\Db\AdapterInterface

...

abstract public close () inherited from Phalcon\Db\AdapterInterface

...

abstract public escapeString (mixed $str) inherited from Phalcon\Db\AdapterInterface

...

abstract public lastInsertId ([mixed $sequenceName]) inherited from Phalcon\Db\AdapterInterface

...

abstract public begin ([mixed $nesting]) inherited from Phalcon\Db\AdapterInterface

...

abstract public rollback ([mixed $nesting]) inherited from Phalcon\Db\AdapterInterface

...

abstract public commit ([mixed $nesting]) inherited from Phalcon\Db\AdapterInterface

...

abstract public isUnderTransaction () inherited from Phalcon\Db\AdapterInterface

...

abstract public getInternalHandler () inherited from Phalcon\Db\AdapterInterface

...

abstract public describeColumns (mixed $table, [mixed $schema]) inherited from Phalcon\Db\AdapterInterface