# Mysql_xdevapi

# Introduction

This extension provides access to the MySQL Document Store via the X DevAPI. The X DevAPI is a common API provided by multiple MySQL Connectors providing easy access to relational tables as well as collections of documents, which are represented in JSON, from a API with CRUD-style operations.

The X DevAPI uses the X Protocol, the new generation client-server protocol of the MySQL 8.0 server.

For general information about the MySQL Document Store, please refer to the » MySQL Document Store chapter in the MySQL manual.

- Installing/Configuring
  - Requirements
  - Installation
  - Runtime Configuration
  - Building / Compiling From Source
- Predefined Constants
- Changelog
- Examples
- Mysql_xdevapi Functions
  - expression — Bind prepared statement variables as parameters
  - getSession — Connect to a MySQL server
- mysql_xdevapi\BaseResult — BaseResult interface
  - BaseResult::getWarnings — Fetch warnings from last operation
  - BaseResult::getWarningsCount — Fetch warning count from last operation
- mysql_xdevapi\Client — Client class
  - mysql_xdevapi\Client::close — Close client
  - Client::__construct — Client constructor
  - Client::getClient — Get client session
- mysql_xdevapi\Collection — Collection class
  - Collection::add — Add collection document
  - Collection::addOrReplaceOne — Add or replace collection document
  - Collection::__construct — Collection constructor
  - Collection::count — Get document count
  - Collection::createIndex — Create collection index
  - Collection::dropIndex — Drop collection index
  - Collection::existsInDatabase — Check if collection exists in database
  - Collection::find — Search for document
  - Collection::getName — Get collection name
  - Collection::getOne — Get one document
  - Collection::getSchema — Get schema object
  - Collection::getSession — Get session object
  - Collection::modify — Modify collection documents
  - Collection::remove — Remove collection documents
  - Collection::removeOne — Remove one collection document
  - Collection::replaceOne — Replace one collection document
- mysql_xdevapi\CollectionAdd — CollectionAdd class
  - CollectionAdd::__construct — CollectionAdd constructor
  - CollectionAdd::execute — Execute the statement
- mysql_xdevapi\CollectionFind — CollectionFind class
  - CollectionFind::bind — Bind value to query placeholder
  - CollectionFind::__construct — CollectionFind constructor
  - CollectionFind::execute — Execute the statement
  - CollectionFind::fields — Set document field filter
  - CollectionFind::groupBy — Set grouping criteria
  - CollectionFind::having — Set condition for aggregate functions
  - CollectionFind::limit — Limit number of returned documents
  - CollectionFind::lockExclusive — Execute operation with EXCLUSIVE LOCK
  - CollectionFind::lockShared — Execute operation with SHARED LOCK
  - CollectionFind::offset — Skip given number of elements to be returned
  - CollectionFind::sort — Set the sorting criteria
- mysql_xdevapi\CollectionModify — CollectionModify class
  - CollectionModify::arrayAppend — Append element to an array field
  - CollectionModify::arrayInsert — Insert element into an array field
  - CollectionModify::bind — Bind value to query placeholder
  - CollectionModify::__construct — CollectionModify constructor
  - CollectionModify::execute — Execute modify operation
  - CollectionModify::limit — Limit number of modified documents
  - CollectionModify::patch — Patch document
  - CollectionModify::replace — Replace document field
  - CollectionModify::set — Set document attribute
  - CollectionModify::skip — Skip elements
  - CollectionModify::sort — Set the sorting criteria
  - CollectionModify::unset — Unset the value of document fields
- mysql_xdevapi\CollectionRemove — CollectionRemove class
  - CollectionRemove::bind — Bind value to placeholder
  - CollectionRemove::__construct — CollectionRemove constructor
  - CollectionRemove::execute — Execute remove operation
  - CollectionRemove::limit — Limit number of documents to remove
  - CollectionRemove::sort — Set the sorting criteria
- mysql_xdevapi\ColumnResult — ColumnResult class
  - ColumnResult::__construct — ColumnResult constructor
  - ColumnResult::getCharacterSetName — Get character set
  - ColumnResult::getCollationName — Get collation name
  - ColumnResult::getColumnLabel — Get column label
  - ColumnResult::getColumnName — Get column name
  - ColumnResult::getFractionalDigits — Get fractional digit length
  - ColumnResult::getLength — Get column field length
  - ColumnResult::getSchemaName — Get schema name
  - ColumnResult::getTableLabel — Get table label
  - ColumnResult::getTableName — Get table name
  - ColumnResult::getType — Get column type
  - ColumnResult::isNumberSigned — Check if signed type
  - ColumnResult::isPadded — Check if padded
- mysql_xdevapi\CrudOperationBindable — CrudOperationBindable interface
  - CrudOperationBindable::bind — Bind value to placeholder
- mysql_xdevapi\CrudOperationLimitable — CrudOperationLimitable interface
  - CrudOperationLimitable::limit — Set result limit
- mysql_xdevapi\CrudOperationSkippable — CrudOperationSkippable interface
  - CrudOperationSkippable::skip — Number of operations to skip
- mysql_xdevapi\CrudOperationSortable — CrudOperationSortable interface
  - CrudOperationSortable::sort — Sort results
- mysql_xdevapi\DatabaseObject — DatabaseObject interface
  - DatabaseObject::existsInDatabase — Check if object exists in database
  - DatabaseObject::getName — Get object name
  - DatabaseObject::getSession — Get session name
- mysql_xdevapi\DocResult — DocResult class
  - DocResult::__construct — DocResult constructor
  - DocResult::fetchAll — Get all rows
  - DocResult::fetchOne — Get one row
  - DocResult::getWarnings — Get warnings from last operation
  - DocResult::getWarningsCount — Get warning count from last operation
- mysql_xdevapi\Exception — Exception class
- mysql_xdevapi\Executable — Executable interface
  - Executable::execute — Execute statement
- mysql_xdevapi\ExecutionStatus — ExecutionStatus class
  - ExecutionStatus::__construct — ExecutionStatus constructor
- mysql_xdevapi\Expression — Expression class
  - Expression::__construct — Expression constructor
- mysql_xdevapi\Result — Result class
  - Result::__construct — Result constructor
  - Result::getAffectedItemsCount — Get affected row count
  - Result::getAutoIncrementValue — Get autoincremented value
  - Result::getGeneratedIds — Get generated ids
  - Result::getWarnings — Get warnings from last operation
  - Result::getWarningsCount — Get warning count from last operation
- mysql_xdevapi\RowResult — RowResult class
  - RowResult::__construct — RowResult constructor
  - RowResult::fetchAll — Get all rows from result
  - RowResult::fetchOne — Get row from result
  - RowResult::getColumnsCount — Get column count
  - RowResult::getColumnNames — Get all column names
  - RowResult::getColumns — Get column metadata
  - RowResult::getWarnings — Get warnings from last operation
  - RowResult::getWarningsCount — Get warning count from last operation
- mysql_xdevapi\Schema — Schema class
  - Schema::__construct — Schema constructor
  - Schema::createCollection — Add collection to schema
  - Schema::dropCollection — Drop collection from schema
  - Schema::existsInDatabase — Check if exists in database
  - Schema::getCollection — Get collection from schema
  - Schema::getCollectionAsTable — Get collection as a Table object
  - Schema::getCollections — Get all schema collections
  - Schema::getName — Get schema name
  - Schema::getSession — Get schema session
  - Schema::getTable — Get schema table
  - Schema::getTables — Get schema tables
- mysql_xdevapi\SchemaObject — SchemaObject interface
  - SchemaObject::getSchema — Get schema object
- mysql_xdevapi\Session — Session class
  - Session::close — Close session
  - Session::commit — Commit transaction
  - Session::__construct — Description constructor
  - Session::createSchema — Create new schema
  - Session::dropSchema — Drop a schema
  - Session::generateUUID — Get new UUID
  - Session::getDefaultSchema — Get default schema name
  - Session::getSchema — Get a new schema object
  - Session::getSchemas — Get the schemas
  - Session::getServerVersion — Get server version
  - Session::listClients — Get client list
  - Session::quoteName — Add quotes
  - Session::releaseSavepoint — Release set savepoint
  - Session::rollback — Rollback transaction
  - Session::rollbackTo — Rollback transaction to savepoint
  - Session::setSavepoint — Create savepoint
  - Session::sql — Create SQL query
  - Session::startTransaction — Start transaction
- mysql_xdevapi\SqlStatement — SqlStatement class
  - SqlStatement::bind — Bind statement parameters
  - SqlStatement::__construct — Description constructor
  - SqlStatement::execute — Execute the operation
  - SqlStatement::getNextResult — Get next result
  - SqlStatement::getResult — Get result
  - SqlStatement::hasMoreResults — Check for more results
- mysql_xdevapi\SqlStatementResult — SqlStatementResult class
  - SqlStatementResult::__construct — Description constructor
  - SqlStatementResult::fetchAll — Get all rows from result
  - SqlStatementResult::fetchOne — Get single row
  - SqlStatementResult::getAffectedItemsCount — Get affected row count
  - SqlStatementResult::getColumnsCount — Get column count
  - SqlStatementResult::getColumnNames — Get column names
  - SqlStatementResult::getColumns — Get columns
  - SqlStatementResult::getGeneratedIds — Get generated ids
  - SqlStatementResult::getLastInsertId — Get last insert id
  - SqlStatementResult::getWarnings — Get warnings from last operation
  - SqlStatementResult::getWarningsCount — Get warning count from last operation
  - SqlStatementResult::hasData — Check if result has data
  - SqlStatementResult::nextResult — Get next result
- mysql_xdevapi\Statement — Statement class
  - Statement::__construct — Description constructor
  - Statement::getNextResult — Get next result
  - Statement::getResult — Get result
  - Statement::hasMoreResults — Check if more results
- mysql_xdevapi\Table — Table class
  - Table::__construct — Table constructor
  - Table::count — Get row count
  - Table::delete — Delete rows from table
  - Table::existsInDatabase — Check if table exists in database
  - Table::getName — Get table name
  - Table::getSchema — Get table schema
  - Table::getSession — Get table session
  - Table::insert — Insert table rows
  - Table::isView — Check if table is view
  - Table::select — Select rows from table
  - Table::update — Update rows in table
- mysql_xdevapi\TableDelete — TableDelete class
  - TableDelete::bind — Bind delete query parameters
  - TableDelete::__construct — TableDelete constructor
  - TableDelete::execute — Execute delete query
  - TableDelete::limit — Limit deleted rows
  - TableDelete::orderby — Set delete sort criteria
  - TableDelete::where — Set delete search condition
- mysql_xdevapi\TableInsert — TableInsert class
  - TableInsert::__construct — TableInsert constructor
  - TableInsert::execute — Execute insert query
  - TableInsert::values — Add insert row values
- mysql_xdevapi\TableSelect — TableSelect class
  - TableSelect::bind — Bind select query parameters
  - TableSelect::__construct — TableSelect constructor
  - TableSelect::execute — Execute select statement
  - TableSelect::groupBy — Set select grouping criteria
  - TableSelect::having — Set select having condition
  - TableSelect::limit — Limit selected rows
  - TableSelect::lockExclusive — Execute EXCLUSIVE LOCK
  - TableSelect::lockShared — Execute SHARED LOCK
  - TableSelect::offset — Set limit offset
  - TableSelect::orderby — Set select sort criteria
  - TableSelect::where — Set select search condition
- mysql_xdevapi\TableUpdate — TableUpdate class
  - TableUpdate::bind — Bind update query parameters
  - TableUpdate::__construct — TableUpdate constructor
  - TableUpdate::execute — Execute update query
  - TableUpdate::limit — Limit update row count
  - TableUpdate::orderby — Set sorting criteria
  - TableUpdate::set — Add field to be updated
  - TableUpdate::where — Set search filter
- mysql_xdevapi\Warning — Warning class
  - Warning::__construct — Warning constructor

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open