Spec-Zone.ru › Phalcon 3

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

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

implements Phalcon\Events\EventsAwareInterface, Phalcon\Db\AdapterInterface

Исходный код на GitHub

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

use Phalcon\Db\Adapter\Pdo\Mysql;

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

$connection = new Mysql($config);

Методы

public __construct (array $descriptor)

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

public connect ([array $descriptor])

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

use Phalcon\Db\Adapter\Pdo\Mysql;

// Make a connection
$connection = new Mysql(
    [
        "host"     => "localhost",
        "username" => "sigma",
        "password" => "secret",
        "dbname"   => "blog",
        "port"     => 3306,
    ]
);

// Reconnect
$connection->connect();

public prepare (mixed $sqlStatement)

Возвращает подготовленное выражение PDO для выполнения с помощью ‘executePrepared’

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)

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

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])

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

// Querying data
$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])

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

// Inserting data
$success = $connection->execute(
    "INSERT INTO robots VALUES (1, 'Astro Boy')"
);

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

public affectedRows ()

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

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

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

public close ()

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

public escapeString (mixed $str)

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

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

public convertBoundParams (mixed $sql, [array $params])

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

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

public int | boolean lastInsertId ([string $sequenceName])

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

// Inserting a new robot
$success = $connection->insert(
    "robots",
    [
        "Astro Boy",
        1952,
    ],
    [
        "name",
        "year",
    ]
);

// Getting the generated id
$id = $connection->lastInsertId();

public begin ([mixed $nesting])

Начинает транзакцию в подключении

public rollback ([mixed $nesting])

Откатывает активную транзакцию в подключении

public commit ([mixed $nesting])

Подтверждает активную транзакцию в подключении

public getTransactionLevel ()

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

public isUnderTransaction ()

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

$connection->begin();

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

public getInternalHandler ()

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

public array getErrorInfo ()

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

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-запроса

// Getting first robot
$robot = $connection->fetchOne("SELECT * FROM robots");
print_r($robot);

// Getting first robot with associative indexes only
$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

Выгружает весь результат запроса в массив

// Getting all robots with associative indexes only
$robots = $connection->fetchAll(
    "SELECT * FROM robots",
    \Phalcon\Db::FETCH_ASSOC
);

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

 // Getting all robots that contains word "robot" withing the name
$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-запроса

// Getting count of robots
$robotsCount = $connection->fetchColumn("SELECT count(*) FROM robots");
print_r($robotsCount);

// Getting name of last edited robot
$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

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

// Inserting a new robot
$success = $connection->insert(
    "robots",
    ["Astro Boy", 1952],
    ["name", "year"]
);

// Next SQL sentence is sent to the database system
INSERT INTO `robots` (`name`, `year`) VALUES ("Astro boy", 1952);

public boolean insertAsDict (string $table, array $data, [array $dataTypes]) унаследовано от Phalcon\Db\Adapter

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

// Inserting a new robot
$success = $connection->insertAsDict(
    "robots",
    [
        "name" => "Astro Boy",
        "year" => 1952,
    ]
);

// Next SQL sentence is sent to the database system
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

// Updating existing robot
$success = $connection->update(
    "robots",
    ["name"],
    ["New Astro Boy"],
    "id = 101"
);

// Next SQL sentence is sent to the database system
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. Еще один, более удобный синтаксис

// Updating existing robot
$success = $connection->updateAsDict(
    "robots",
    [
        "name" => "New Astro Boy",
    ],
    "id = 101"
);

// Next SQL sentence is sent to the database system
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

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

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

$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

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

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

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

Генерирует SQL, проверяющий существование схемы.таблицы

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

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

Генерирует SQL, проверяющий существование схемы.представления

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

public forUpdate (mixed $sqlQuery) inherited from Phalcon\Db\Adapter

Возвращает SQL, изменённый с помощью условия FOR UPDATE

public sharedLock (mixed $sqlQuery) inherited from Phalcon\Db\Adapter

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

public createTable (mixed $tableName, mixed $schemaName, array $definition) inherited from Phalcon\Db\Adapter

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

public dropTable (mixed $tableName, [mixed $schemaName], [mixed $ifExists]) inherited from Phalcon\Db\Adapter

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

public createView (mixed $viewName, array $definition, [mixed $schemaName]) inherited from Phalcon\Db\Adapter

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

public dropView (mixed $viewName, [mixed $schemaName], [mixed $ifExists]) inherited from Phalcon\Db\Adapter

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

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

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

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

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

public dropColumn (mixed $tableName, mixed $schemaName, mixed $columnName) inherited from Phalcon\Db\Adapter

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

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

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

public dropIndex (mixed $tableName, mixed $schemaName, mixed $indexName) inherited from Phalcon\Db\Adapter

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

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

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

public dropPrimaryKey (mixed $tableName, mixed $schemaName) inherited from Phalcon\Db\Adapter

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

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

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

public dropForeignKey (mixed $tableName, mixed $schemaName, mixed $referenceName) inherited from Phalcon\Db\Adapter

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

public getColumnDefinition (Phalcon\Db\ColumnInterface $column) inherited from Phalcon\Db\Adapter

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

public listTables ([mixed $schemaName]) inherited from Phalcon\Db\Adapter

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

public listViews ([mixed $schemaName]) inherited from Phalcon\Db\Adapter

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

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

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

public describeReferences (mixed $table, [mixed $schema]) inherited from Phalcon\Db\Adapter

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

public tableOptions (mixed $tableName, [mixed $schemaName]) inherited from Phalcon\Db\Adapter

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

public createSavepoint (mixed $name) inherited from Phalcon\Db\Adapter

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

public releaseSavepoint (mixed $name) inherited from Phalcon\Db\Adapter

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

public rollbackSavepoint (mixed $name) inherited from Phalcon\Db\Adapter

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

public setNestedTransactionsWithSavepoints (mixed $nestedTransactionsWithSavepoints) inherited from Phalcon\Db\Adapter

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

public isNestedTransactionsWithSavepoints () inherited from Phalcon\Db\Adapter

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

public getNestedTransactionSavepointName () inherited from Phalcon\Db\Adapter

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

public getDefaultIdValue () inherited from Phalcon\Db\Adapter

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

public getDefaultValue () inherited from Phalcon\Db\Adapter

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

public supportSequences () inherited from Phalcon\Db\Adapter

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

public useExplicitIdValue () inherited from Phalcon\Db\Adapter

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

public getDescriptor () inherited from Phalcon\Db\Adapter

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

public string getConnectionId () inherited from Phalcon\Db\Adapter

Получение уникального идентификатора активного подключения

public getSQLStatement () inherited from Phalcon\Db\Adapter

Актуальное SQL-утверждение в объекте

public getRealSQLStatement () inherited from Phalcon\Db\Adapter

Актуальное SQL-утверждение в объекте без подстановки связанных параметров

public array getSQLBindTypes () inherited from Phalcon\Db\Adapter

Актуальное SQL-утверждение в объекте

абстрактный public describeColumns (mixed $table, [mixed $schema]) унаследован от Phalcon\Db\AdapterInterface

...

© 2011–2017 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/latest/api/Phalcon_Db_Adapter_Pdo.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API