Класс Phalcon\Db\Adapter\Pdo\Postgresql

расширяет абстрактный класс Phalcon\Db\Adapter\Pdo

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

Source on GitHub

Специфические функции для системы баз данных Postgresql

<?php

use Phalcon\Db\Adapter\Pdo\Postgresql;

$config = [
    "host"     => "localhost",
    "dbname"   => "blog",
    "port"     => 5432,
    "username" => "postgres",
    "password" => "secret",
];

$connection = new Postgresql($config);

Методы

public connect ([array $descriptor])

Этот метод автоматически вызывается в конструкторе Phalcon\Db\Adapter\Pdo. Вызовите его, когда необходимо восстановить подключение к базе данных.

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

Возвращает массив объектов Phalcon\Db\Column, описывающих таблицу

<?php

print_r(
    $connection->describeColumns("posts")
);

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

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

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

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

public useExplicitIdValue ()

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

public getDefaultIdValue ()

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

<?php

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

public supportSequences ()

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

public __construct (array $descriptor) наследуется от Phalcon\Db\Adapter\Pdo

Конструктор для Phalcon\Db\Adapter\Pdo

public prepare (mixed $sqlStatement) наследуется от Phalcon\Db\Adapter\Pdo

Возвращает подготовленный оператор PDO, который должен выполняться с помощью 'executePrepared'

<?php

use Phalcon\Db\Column;

$statement = $db->prepare(
    "SELECT * FROM robots WHERE name = :name"
);

$result = $connection->executePrepared(
    $statement,
    [
        "name" => "Voltron",
    ],
    [
        "name" => Column::BIND_PARAM_INT,
    ]
);

public PDOStatement executePrepared (PDOStatement $statement, array $placeholders, array $dataTypes) наследуется от Phalcon\Db\Adapter\Pdo

Выполняет подготовленную привязку оператора. Эта функция использует целочисленные индексы, начиная с нуля

<?php

use Phalcon\Db\Column;

$statement = $db->prepare(
    "SELECT * FROM robots WHERE name = :name"
);

$result = $connection->executePrepared(
    $statement,
    [
        "name" => "Voltron",
    ],
    [
        "name" => Column::BIND_PARAM_INT,
    ]
);

public query (mixed $sqlStatement, [mixed $bindParams], [mixed $bindTypes]) наследуется от Phalcon\Db\Adapter\Pdo

Отправляет SQL-запросы на сервер базы данных, возвращая состояние успеха. Используйте этот метод только тогда, когда оператор SQL, отправленный на сервер, возвращает строки

<?php

// Запрос данных
$resultset = $connection->query(
    "SELECT * FROM robots WHERE type = 'mechanical'"
);

$resultset = $connection->query(
    "SELECT * FROM robots WHERE type = ?",
    [
        "mechanical",
    ]
);

public execute (mixed $sqlStatement, [mixed $bindParams], [mixed $bindTypes]) наследуется от Phalcon\Db\Adapter\Pdo

Отправляет SQL-запросы на сервер базы данных, возвращая состояние успеха. Используйте этот метод только в том случае, если оператор SQL, отправленный на сервер, не возвращает никаких строк

<?php

// Вставка данных
$success = $connection->execute(
    "INSERT INTO robots VALUES (1, 'Astro Boy')"
);

$success = $connection->execute(
    "INSERT INTO robots VALUES (?, ?)",
    [
        1,
        "Astro Boy",
    ]
);

public affectedRows () наследуется от Phalcon\Db\Adapter\Pdo

Возвращает количество затронутых строк последним INSERT / UPDATE / DELETE, выполненным в системе базы данных

<?php

$connection->execute(
    "DELETE FROM robots"
);

echo $connection->affectedRows(), " were deleted";

public close () наследуется от Phalcon\Db\Adapter\Pdo

Закрывает активное соединение, возвращающее успех. Phalcon автоматически закрывает и уничтожает активные соединения, когда запрос заканчивается

public escapeString (mixed $str) наследуется от Phalcon\Db\Adapter\Pdo

Экранирует значение, чтобы избежать SQL-инъекций в соответствии с активной кодировкой в соединении

<?php

$escapedStr = $connection->escapeString("some dangerous value");

public convertBoundParams (mixed $sql, [array $params]) наследуется от Phalcon\Db\Adapter\Pdo

Преобразует связанные параметры, такие как: name: или ?1 в PDO связанные параметры ?

<?php

print_r(
    $connection->convertBoundParams(
        "SELECT * FROM robots WHERE name = :name:",
        [
            "Bender",
        ]
    )
);

public int | boolean lastInsertId ([string $sequenceName]) наследуется от Phalcon\Db\Adapter\Pdo

Возвращает insert id для столбца auto_increment/serial, вставленного в последнюю выполненную инструкцию SQL

<?php

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

// Получение сгенерированного id
$id = $connection->lastInsertId();

 

public begin ([mixed $nesting]) наследуется от Phalcon\Db\Adapter\Pdo

Запуск транзакции в соединении

public rollback ([mixed $nesting]) наследуется от Phalcon\Db\Adapter\Pdo

Откат активной транзакции в соединении

public commit ([mixed $nesting]) наследуется от Phalcon\Db\Adapter\Pdo

Записывает активную транзакцию в соединении

public getTransactionLevel () наследуется от Phalcon\Db\Adapter\Pdo

Возвращает текущий уровень вложенности транзакций

public isUnderTransaction () наследуется от Phalcon\Db\Adapter\Pdo

Проверяет, связано ли соединение с транзакцией

<?php

$connection->begin();

// true
var_dump(
    $connection->isUnderTransaction()
);

public getInternalHandler () наследуется от Phalcon\Db\Adapter\Pdo

Возврат внутреннего обработчика PDO

public array getErrorInfo () наследуется от Phalcon\Db\Adapter\Pdo

Возврат информации об ошибке, если таковая имеется

public getDialectType () наследуется от Phalcon\Db\Adapter

Имя используемого диалекта

public getType () наследуется от Phalcon\Db\Adapter

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

public getSqlVariables () наследуется от Phalcon\Db\Adapter

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

public setEventsManager (Phalcon\Events\ManagerInterface $eventsManager) наследуется от Phalcon\Db\Adapter

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

public getEventsManager () наследуется от Phalcon\Db\Adapter

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

public setDialect (Phalcon\Db\DialectInterface $dialect) наследуется от Phalcon\Db\Adapter

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

public getDialect () наследуется от Phalcon\Db\Adapter

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

public fetchOne (mixed $sqlQuery, [mixed $fetchMode], [mixed $bindParams], [mixed $bindTypes]) наследуется от Phalcon\Db\Adapter

Возвращает первую строку в результате запроса 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]) наследуется от Phalcon\Db\Adapter

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

<?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]) наследуется от Phalcon\Db\Adapter

Возвращает 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]) наследуется от Phalcon\Db\Adapter

Вставка данных в таблицу с использованием пользовательского синтаксиса 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]) наследуется от Phalcon\Db\Adapter

Вставляет данные в таблицу, используя пользовательские 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]) наследуется от Phalcon\Db\Adapter

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

<?php

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

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

// Updating existing robot with array condition and $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]) наследуется от Phalcon\Db\Adapter

Обновление данных в таблице с помощью пользовательского синтаксиса 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]) наследуется от Phalcon\Db\Adapter

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

<?php

// Удаление существующего робота
$success = $connection->delete(
    "robots",
    "id = 101"
);

// Следующее предложение SQL генерируется
// DELETE FROM `robots` WHERE `id` = 101

public escapeIdentifier (array | string $identifier) наследуется от Phalcon\Db\Adapter

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

<?php

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

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

public string getColumnList (array $columnList) наследуется от Phalcon\Db\Adapter

Возвращает список столбцов

public limit (mixed $sqlQuery, mixed $number) наследуется от Phalcon\Db\Adapter

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

<?php

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

public tableExists (mixed $tableName, [mixed $schemaName]) наследуется от Phalcon\Db\Adapter

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

<?php

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

public viewExists (mixed $viewName, [mixed $schemaName]) наследуется от Phalcon\Db\Adapter

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

<?php

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

public forUpdate (mixed $sqlQuery) наследуется от Phalcon\Db\Adapter

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

public sharedLock (mixed $sqlQuery) наследуется от Phalcon\Db\Adapter

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

public dropTable (mixed $tableName, [mixed $schemaName], [mixed $ifExists]) наследуется от Phalcon\Db\Adapter

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

public createView (mixed $viewName, array $definition, [mixed $schemaName]) наследуется от Phalcon\Db\Adapter

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

public dropView (mixed $viewName, [mixed $schemaName], [mixed $ifExists]) наследуется от Phalcon\Db\Adapter

Удаляет представление

public addColumn (mixed $tableName, mixed $schemaName, Phalcon\Db\ColumnInterface $column) наследуется от Phalcon\Db\Adapter

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

public dropColumn (mixed $tableName, mixed $schemaName, mixed $columnName) наследуется от Phalcon\Db\Adapter

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

public addIndex (mixed $tableName, mixed $schemaName, Phalcon\Db\IndexInterface $index) наследуется от Phalcon\Db\Adapter

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

public dropIndex (mixed $tableName, mixed $schemaName, mixed $indexName) наследуется от Phalcon\Db\Adapter

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

public addPrimaryKey (mixed $tableName, mixed $schemaName, Phalcon\Db\IndexInterface $index) наследуется от Phalcon\Db\Adapter

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

public dropPrimaryKey (mixed $tableName, mixed $schemaName) наследуется от Phalcon\Db\Adapter

Удаляет первичный ключ таблицы

public addForeignKey (mixed $tableName, mixed $schemaName, Phalcon\Db\ReferenceInterface $reference) наследуется от Phalcon\Db\Adapter

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

public dropForeignKey (mixed $tableName, mixed $schemaName, mixed $referenceName) наследуется от Phalcon\Db\Adapter

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

public getColumnDefinition (Phalcon\Db\ColumnInterface $column) наследуется от Phalcon\Db\Adapter

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

public listTables ([mixed $schemaName]) наследуется от Phalcon\Db\Adapter

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

<?php

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

public listViews ([mixed $schemaName]) наследуется от Phalcon\Db\Adapter

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

<?php

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

public Phalcon\Db\Index describeIndexes (string $table, [string $schema]) наследуется от Phalcon\Db\Adapter

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

<?php

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

public describeReferences (mixed $table, [mixed $schema]) наследуется от Phalcon\Db\Adapter

Списки табличных ссылок

<?php

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

public tableOptions (mixed $tableName, [mixed $schemaName]) наследуется от Phalcon\Db\Adapter

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

<?php

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

public createSavepoint (mixed $name) наследуется от Phalcon\Db\Adapter

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

public releaseSavepoint (mixed $name) наследуется от Phalcon\Db\Adapter

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

public rollbackSavepoint (mixed $name) наследуется от Phalcon\Db\Adapter

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

public setNestedTransactionsWithSavepoints (mixed $nestedTransactionsWithSavepoints) наследуется от Phalcon\Db\Adapter

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

public isNestedTransactionsWithSavepoints () наследуется от Phalcon\Db\Adapter

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

public getNestedTransactionSavepointName () наследуется от Phalcon\Db\Adapter

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

public getDefaultValue () наследуется от Phalcon\Db\Adapter

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

<?php

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

public getDescriptor () наследуется от Phalcon\Db\Adapter

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

public string getConnectionId () наследуется от Phalcon\Db\Adapter

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

public getSQLStatement () наследуется от Phalcon\Db\Adapter

Активная инструкция SQL в объекте

public getRealSQLStatement () наследуется от Phalcon\Db\Adapter

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

public array getSQLBindTypes () наследуется от Phalcon\Db\Adapter

Активная инструкция SQL в объекте