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

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

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

Source on GitHub

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

<?php

use Phalcon\Db\Adapter\Pdo\Mysql;

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

$connection = new Mysql($config);

Методы

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

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

<?php

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

public Phalcon\Db\IndexInterface 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 __construct (array $descriptor) унаследовано от Phalcon\Db\Adapter\Pdo

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

public connect ([array $descriptor]) унаследовано от Phalcon\Db\Adapter\Pdo

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

<?php

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) унаследовано от 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: or ?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

// Обновление существующего робота с условием массива и $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 createTable (mixed $tableName, mixed $schemaName, array $definition) унаследовано от Phalcon\Db\Adapter

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

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

Отбрасывает таблицу из schema/database

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 modifyColumn (mixed $tableName, mixed $schemaName, Phalcon\Db\ColumnInterface $column, [Phalcon\Db\ColumnInterface $currentColumn]) унаследовано от 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 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 getDefaultIdValue () унаследовано от Phalcon\Db\Adapter

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

<?php

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

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

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

<?php

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

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

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

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

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

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 в объекте