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")
);