# MySQL Improved Extension

- Introduction
- Overview
- Quick start guide
  - Dual procedural and object-oriented interface
  - Connections
  - Executing statements
  - Prepared Statements
  - Stored Procedures
  - Multiple Statements
  - API support for transactions
  - Metadata
- Installing/Configuring
  - Requirements
  - Installation
  - Runtime Configuration
  - Resource Types
- The mysqli Extension and Persistent Connections
- Predefined Constants
- Notes
- The MySQLi Extension Function Summary
- Examples
  - MySQLi extension basic examples
- mysqli — The mysqli class
  - mysqli::$affected_rows — Gets the number of affected rows in a previous MySQL operation
  - mysqli::autocommit — Turns on or off auto-committing database modifications
  - mysqli::begin_transaction — Starts a transaction
  - mysqli::change_user — Changes the user of the specified database connection
  - mysqli::character_set_name — Returns the default character set for the database connection
  - mysqli::close — Closes a previously opened database connection
  - mysqli::commit — Commits the current transaction
  - mysqli::$connect_errno — Returns the error code from last connect call
  - mysqli::$connect_error — Returns a string description of the last connect error
  - mysqli::__construct — Open a new connection to the MySQL server
  - mysqli::debug — Performs debugging operations
  - mysqli::dump_debug_info — Dump debugging information into the log
  - mysqli::$errno — Returns the error code for the most recent function call
  - mysqli::$error_list — Returns a list of errors from the last command executed
  - mysqli::$error — Returns a string description of the last error
  - mysqli::$field_count — Returns the number of columns for the most recent query
  - mysqli::get_charset — Returns a character set object
  - mysqli::$client_info — Get MySQL client info
  - mysqli::$client_version — Returns the MySQL client version as an integer
  - mysqli::get_connection_stats — Returns statistics about the client connection
  - mysqli::$host_info — Returns a string representing the type of connection used
  - mysqli::$protocol_version — Returns the version of the MySQL protocol used
  - mysqli::$server_info — Returns the version of the MySQL server
  - mysqli::$server_version — Returns the version of the MySQL server as an integer
  - mysqli::get_warnings — Get result of SHOW WARNINGS
  - mysqli::$info — Retrieves information about the most recently executed query
  - mysqli::init — Initializes MySQLi and returns a resource for use with mysqli_real_connect()
  - mysqli::$insert_id — Returns the auto generated id used in the latest query
  - mysqli::kill — Asks the server to kill a MySQL thread
  - mysqli::more_results — Check if there are any more query results from a multi query
  - mysqli::multi_query — Performs a query on the database
  - mysqli::next_result — Prepare next result from multi_query
  - mysqli::options — Set options
  - mysqli::ping — Pings a server connection, or tries to reconnect if the connection has gone down
  - mysqli::poll — Poll connections
  - mysqli::prepare — Prepare an SQL statement for execution
  - mysqli::query — Performs a query on the database
  - mysqli::real_connect — Opens a connection to a mysql server
  - mysqli::real_escape_string — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
  - mysqli::real_query — Execute an SQL query
  - mysqli::reap_async_query — Get result from async query
  - mysqli::refresh — Refreshes
  - mysqli::release_savepoint — Removes the named savepoint from the set of savepoints of the current transaction
  - mysqli::rollback — Rolls back current transaction
  - mysqli::rpl_query_type — Returns RPL query type
  - mysqli::savepoint — Set a named transaction savepoint
  - mysqli::select_db — Selects the default database for database queries
  - mysqli::send_query — Send the query and return
  - mysqli::set_charset — Sets the default client character set
  - mysqli::set_local_infile_default — Unsets user defined handler for load local infile command
  - mysqli::set_local_infile_handler — Set callback function for LOAD DATA LOCAL INFILE command
  - mysqli::$sqlstate — Returns the SQLSTATE error from previous MySQL operation
  - mysqli::ssl_set — Used for establishing secure connections using SSL
  - mysqli::stat — Gets the current system status
  - mysqli::stmt_init — Initializes a statement and returns an object for use with mysqli_stmt_prepare
  - mysqli::store_result — Transfers a result set from the last query
  - mysqli::$thread_id — Returns the thread ID for the current connection
  - mysqli::thread_safe — Returns whether thread safety is given or not
  - mysqli::use_result — Initiate a result set retrieval
  - mysqli::$warning_count — Returns the number of warnings from the last query for the given link
- mysqli_stmt — The mysqli_stmt class
  - mysqli_stmt::$affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement
  - mysqli_stmt::attr_get — Used to get the current value of a statement attribute
  - mysqli_stmt::attr_set — Used to modify the behavior of a prepared statement
  - mysqli_stmt::bind_param — Binds variables to a prepared statement as parameters
  - mysqli_stmt::bind_result — Binds variables to a prepared statement for result storage
  - mysqli_stmt::close — Closes a prepared statement
  - mysqli_stmt::__construct — Constructs a new mysqli_stmt object
  - mysqli_stmt::data_seek — Seeks to an arbitrary row in statement result set
  - mysqli_stmt::$errno — Returns the error code for the most recent statement call
  - mysqli_stmt::$error_list — Returns a list of errors from the last statement executed
  - mysqli_stmt::$error — Returns a string description for last statement error
  - mysqli_stmt::execute — Executes a prepared Query
  - mysqli_stmt::fetch — Fetch results from a prepared statement into the bound variables
  - mysqli_stmt::$field_count — Returns the number of field in the given statement
  - mysqli_stmt::free_result — Frees stored result memory for the given statement handle
  - mysqli_stmt::get_result — Gets a result set from a prepared statement
  - mysqli_stmt::get_warnings — Get result of SHOW WARNINGS
  - mysqli_stmt::$insert_id — Get the ID generated from the previous INSERT operation
  - mysqli_stmt::more_results — Check if there are more query results from a multiple query
  - mysqli_stmt::next_result — Reads the next result from a multiple query
  - mysqli_stmt::$num_rows — Return the number of rows in statements result set
  - mysqli_stmt::$param_count — Returns the number of parameter for the given statement
  - mysqli_stmt::prepare — Prepare an SQL statement for execution
  - mysqli_stmt::reset — Resets a prepared statement
  - mysqli_stmt::result_metadata — Returns result set metadata from a prepared statement
  - mysqli_stmt::send_long_data — Send data in blocks
  - mysqli_stmt::$sqlstate — Returns SQLSTATE error from previous statement operation
  - mysqli_stmt::store_result — Transfers a result set from a prepared statement
- mysqli_result — The mysqli_result class
  - mysqli_result::$current_field — Get current field offset of a result pointer
  - mysqli_result::data_seek — Adjusts the result pointer to an arbitrary row in the result
  - mysqli_result::fetch_all — Fetches all result rows as an associative array, a numeric array, or both
  - mysqli_result::fetch_array — Fetch a result row as an associative, a numeric array, or both
  - mysqli_result::fetch_assoc — Fetch a result row as an associative array
  - mysqli_result::fetch_field_direct — Fetch meta-data for a single field
  - mysqli_result::fetch_field — Returns the next field in the result set
  - mysqli_result::fetch_fields — Returns an array of objects representing the fields in a result set
  - mysqli_result::fetch_object — Returns the current row of a result set as an object
  - mysqli_result::fetch_row — Get a result row as an enumerated array
  - mysqli_result::$field_count — Get the number of fields in a result
  - mysqli_result::field_seek — Set result pointer to a specified field offset
  - mysqli_result::free — Frees the memory associated with a result
  - mysqli_result::$lengths — Returns the lengths of the columns of the current row in the result set
  - mysqli_result::$num_rows — Gets the number of rows in a result
- mysqli_driver — The mysqli_driver class
  - mysqli_driver::embedded_server_end — Stop embedded server
  - mysqli_driver::embedded_server_start — Initialize and start embedded server
  - mysqli_driver::$report_mode — Enables or disables internal report functions
- mysqli_warning — The mysqli_warning class
  - mysqli_warning::__construct — The __construct purpose
  - mysqli_warning::next — Fetch next warning
- mysqli_sql_exception — The mysqli_sql_exception class
- Aliases and deprecated Mysqli Functions
  - mysqli_bind_param — Alias for mysqli_stmt_bind_param
  - mysqli_bind_result — Alias for mysqli_stmt_bind_result
  - mysqli_client_encoding — Alias of mysqli_character_set_name
  - mysqli_connect — Alias of mysqli::__construct
  - mysqli::disable_reads_from_master — Disable reads from master
  - mysqli_disable_rpl_parse — Disable RPL parse
  - mysqli_enable_reads_from_master — Enable reads from master
  - mysqli_enable_rpl_parse — Enable RPL parse
  - mysqli_escape_string — Alias of mysqli_real_escape_string
  - mysqli_execute — Alias for mysqli_stmt_execute
  - mysqli_fetch — Alias for mysqli_stmt_fetch
  - mysqli_get_cache_stats — Returns client Zval cache statistics
  - mysqli_get_client_stats — Returns client per-process statistics
  - mysqli_get_links_stats — Return information about open and cached links
  - mysqli_get_metadata — Alias for mysqli_stmt_result_metadata
  - mysqli_master_query — Enforce execution of a query on the master in a master/slave setup
  - mysqli_param_count — Alias for mysqli_stmt_param_count
  - mysqli_report — Alias of mysqli_driver->report_mode
  - mysqli_rpl_parse_enabled — Check if RPL parse is enabled
  - mysqli_rpl_probe — RPL probe
  - mysqli_send_long_data — Alias for mysqli_stmt_send_long_data
  - mysqli::set_opt — Alias of mysqli_options
  - mysqli_slave_query — Force execution of a query on a slave in a master/slave setup
- Changelog