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

Source on GitHub

 

Пространство имен Phalcon\Db\Adapter\Pdo
Использует Phalcon\Db\Adapter\AbstractAdapter, Phalcon\Db\Column, Phalcon\Db\Exception, Phalcon\Db\Result\Pdo, Phalcon\Db\ResultInterface, Phalcon\Events\ManagerInterface
Расширяет AbstractAdapter

Phalcon\Db\Adapter\Pdo - это Phalcon\Db, который внутренне использует PDO для подключения к базе данных

<?php

use Phalcon\Db\Adapter\Pdo\Mysql;

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

$connection = new Mysql($config);

Свойства

/**
 * Последние затронутые строки
 */
protected affectedRows;

/**
 * PDO Handler
 *
 * @var \PDO
 */
protected pdo;

Методы

public function __construct( array $descriptor );

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

public function affectedRows(): int;

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

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

echo $connection->affectedRows(), " were deleted";
public function begin( bool $nesting = bool ): bool;

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

public function close(): bool;

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

public function commit( bool $nesting = bool ): bool;

Фиксирует активную транзакцию в соединении

public function connect( array $descriptor = null ): bool;

Этот метод автоматически вызывается в конструкторе \Phalcon\Db\Adapter\Pdo.

Call it when you need to restore a database connection.

use Phalcon\Db\Adapter\Pdo\Mysql;

// Установить связь
$connection = new Mysql(
    [
        "host"     => "localhost",
        "username" => "sigma",
        "password" => "secret",
        "dbname"   => "blog",
        "port"     => 3306,
    ]
);

// Reconnect
$connection->connect();
public function convertBoundParams( string $sql, array $params = [] ): array;

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

print_r(
    $connection->convertBoundParams(
        "SELECTFROM robots WHERE name = :name:",
        [
            "Bender",
        ]
    )
);
public function escapeString( string $str ): string;

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

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

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

$escapedStr = $connection->escapeString("some dangerous value");
public function execute( string $sqlStatement, mixed $bindParams = null, mixed $bindTypes = null ): bool;

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

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

$success = $connection->execute(
    "INSERT INTO robots VALUES (?, ?)",
    [
        1,
        "Astro Boy",
    ]
);
public function executePrepared( \PDOStatement $statement, array $placeholders, mixed $dataTypes ): \PDOStatement;

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

use Phalcon\Db\Column;

$statement = $db->prepare(
    "SELECTFROM robots WHERE name = :name"
);

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

Возвращает сведения об ошибке, если таковые имеются

public function getInternalHandler(): \PDO;

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

public function getTransactionLevel(): int;

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

public function isUnderTransaction(): bool;

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

$connection->begin();

// true
var_dump(
    $connection->isUnderTransaction()
);
public function lastInsertId( mixed $sequenceName = null ): int | bool;

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

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

// Получаем сгенерированный ID
$id = $connection->lastInsertId();
public function prepare( string $sqlStatement ): \PDOStatement;

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

use Phalcon\Db\Column;

$statement = $db->prepare(
    "SELECTFROM robots WHERE name = :name"
);

$result = $connection->executePrepared(
    $statement,
    [
        "name" => "Voltron",
    ],
    [
        "name" => Column::BIND_PARAM_INT,
    ]
);
public function query( string $sqlStatement, mixed $bindParams = null, mixed $bindTypes = null ): ResultInterface | bool;

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

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

$resultset = $connection->query(
    "SELECTFROM robots WHERE type = ?",
    [
        "mechanical",
    ]
);
public function rollback( bool $nesting = bool ): bool;

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

abstract protected function getDsnDefaults(): array;

Возвращает значения по умолчанию DSN адаптера PDO в виде карты значений ключа.