# MySQL Improved Extension

# Introduction

The `mysqli` extension allows you to access the functionality provided by MySQL 4.1 and above. More information about the MySQL Database server can be found at » http://www.mysql.com/

An overview of software available for using MySQL from PHP can be found at Overview

Documentation for MySQL can be found at » http://dev.mysql.com/doc/.

Parts of this documentation included from MySQL manual with permissions of Oracle Corporation.

Examples use either the » world or » sakila database, which are freely available.

- 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
- The mysqli Extension and Persistent Connections
- Predefined Constants
- Notes
- The MySQLi Extension Function Summary
- 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 database connection
  - mysqli::character_set_name — Returns the current character set of 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 description of the last connection 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 — Returns a string description of the last error
  - mysqli::$error_list — Returns a list of errors from the last command executed
  - mysqli::execute_query — Prepares, binds parameters, and executes SQL statement
  - 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 an object for use with mysqli_real_connect()
  - mysqli::$insert_id — Returns the value generated for an AUTO_INCREMENT column by the last 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 one or more queries 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 — Prepares an SQL statement for execution
  - mysqli::query — Performs a query on the database
  - mysqli::real_connect — Opens a connection to the 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::savepoint — Set a named transaction savepoint
  - mysqli::select_db — Selects the default database for database queries
  - mysqli::set_charset — Sets the client character set
  - 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 generated by the most recently executed query
- mysqli_stmt — The mysqli_stmt class
  - mysqli_stmt::$affected_rows — Returns the total number of rows changed, deleted, inserted, or matched by the last statement executed
  - 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 — Adjusts the result pointer to an arbitrary row in the buffered result
  - mysqli_stmt::$errno — Returns the error code for the most recent statement call
  - mysqli_stmt::$error — Returns a string description for last statement error
  - mysqli_stmt::$error_list — Returns a list of errors from the last statement executed
  - mysqli_stmt::execute — Executes a prepared statement
  - mysqli_stmt::fetch — Fetch results from a prepared statement into the bound variables
  - mysqli_stmt::$field_count — Returns the number of columns 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 as a mysqli_result object
  - 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 — Returns the number of rows fetched from the server
  - mysqli_stmt::$param_count — Returns the number of parameters for the given statement
  - mysqli_stmt::prepare — Prepares 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 — Stores a result set in an internal buffer
- mysqli_result — The mysqli_result class
  - mysqli_result::__construct — Constructs a mysqli_result object
  - 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 — Fetch all result rows as an associative array, a numeric array, or both
  - mysqli_result::fetch_array — Fetch the next row of a result set as an associative, a numeric array, or both
  - mysqli_result::fetch_assoc — Fetch the next row of a result set as an associative array
  - mysqli_result::fetch_column — Fetch a single column from the next row of a result set
  - mysqli_result::fetch_field — Returns the next field in the result set
  - mysqli_result::fetch_field_direct — Fetch meta-data for a single field
  - mysqli_result::fetch_fields — Returns an array of objects representing the fields in a result set
  - mysqli_result::fetch_object — Fetch the next row of a result set as an object
  - mysqli_result::fetch_row — Fetch the next row of a result set as an enumerated array
  - mysqli_result::$field_count — Gets the number of fields in the result set
  - mysqli_result::field_seek — Set result pointer to a specified field offset
  - mysqli_result::free — Frees the memory associated with a result
  - mysqli_result::getIterator — Retrieve an external iterator
  - 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 the result set
- 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 — Sets mysqli error reporting mode
- mysqli_warning — The mysqli_warning class
  - mysqli_warning::__construct — Private constructor to disallow direct instantiation
  - mysqli_warning::next — Fetch next warning
- mysqli_sql_exception — The mysqli_sql_exception class
  - mysqli_sql_exception::getSqlState — Returns the SQLSTATE error code
- Aliases and deprecated Mysqli Functions
  - mysqli_connect — Alias of mysqli::__construct
  - mysqli::escape_string — Alias of mysqli_real_escape_string
  - mysqli_execute — Alias of mysqli_stmt_execute
  - mysqli_get_client_stats — Returns client per-process statistics
  - mysqli_get_links_stats — Return information about open and cached links
  - mysqli_report — Alias of mysqli_driver->report_mode
  - mysqli::set_opt — Alias of mysqli_options
- Changelog

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