Author: mcbrown
Date: 2008-11-10 13:29:01 +0100 (Mon, 10 Nov 2008)
New Revision: 12368
Log:
PHP auto-update
Modified:
trunk/refman-common/apis-php-mysql.xml
trunk/refman-common/apis-php-mysqli.xml
Modified: trunk/refman-common/apis-php-mysql.xml
===================================================================
--- trunk/refman-common/apis-php-mysql.xml 2008-11-09 14:15:15 UTC (rev 12367)
+++ trunk/refman-common/apis-php-mysql.xml 2008-11-10 12:29:01 UTC (rev 12368)
Changed blocks: 5, Lines Added: 8, Lines Deleted: 8; 2526 bytes
@@ -1987,8 +1987,8 @@
<link linkend="apis-php-function.mysql-create-db"><function>mysql_create_db</function></link>
is deprecated. It is preferable to use
<link linkend="apis-php-function.mysql-query"><function>mysql_query</function></link>
- to issue a sql <literal role="stmt">CREATE
- DATABASE</literal> statement instead.
+ to issue a sql <literal>CREATE DATABASE</literal> statement
+ instead.
</para>
<programlisting>
@@ -2574,7 +2574,7 @@
<constant>FALSE</constant>
for
- <literal role="stmt">INSERT</literal>/<literal role="stmt">UPDATE</literal>/<literal role="stmt">DELETE</literal>
+ <literal>INSERT</literal>/<literal>UPDATE</literal>/<literal>DELETE</literal>
queries to indicate success/failure.
</para>
@@ -2740,8 +2740,8 @@
associated with the specified link identifier. This function is
deprecated, it is preferable to use
<link linkend="apis-php-function.mysql-query"><function>mysql_query</function></link>
- to issue a sql <literal role="stmt">DROP DATABASE</literal>
- statement instead.
+ to issue a sql <literal>DROP DATABASE</literal> statement
+ instead.
</para>
<para>
@@ -8799,8 +8799,8 @@
<note>
<simpara><link linkend="apis-php-function.mysql-real-escape-string"><function>mysql_real_escape_string</function></link> does not escape
<literal>%</literal> and <literal>_</literal>. These are wildcards in
- MySQL if combined with <literal>LIKE</literal>, <literal role="stmt">GRANT</literal>,
- or <literal role="stmt">REVOKE</literal>.
+ MySQL if combined with <literal>LIKE</literal>, <literal>GRANT</literal>,
+ or <literal>REVOKE</literal>.
</simpara>
</note>
@@ -9425,7 +9425,7 @@
Returns a string with the status for uptime, threads, queries,
open tables, flush tables and queries per second. For a complete
list of other status variables, you have to use the
- <literal role="stmt">SHOW STATUS</literal> SQL command. If
+ <literal>SHOW STATUS</literal> SQL command. If
<parameter>link_identifier</parameter> is invalid,
<constant>NULL</constant>
Modified: trunk/refman-common/apis-php-mysqli.xml
===================================================================
--- trunk/refman-common/apis-php-mysqli.xml 2008-11-09 14:15:15 UTC (rev 12367)
+++ trunk/refman-common/apis-php-mysqli.xml 2008-11-10 12:29:01 UTC (rev 12368)
Changed blocks: 68, Lines Added: 1671, Lines Deleted: 194; 95409 bytes
@@ -9,13 +9,18 @@
</para>
<para>
- 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
+ The <literal>mysqli</literal> 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
<ulink url="http://www.mysql.com/">http://www.mysql.com/</ulink>
</para>
<para>
+ An overview of software available for using MySQL from PHP can be
+ found at <xref linkend="mysqli.overview"/>
+ </para>
+
+ <para>
Documentation for MySQL can be found at
<ulink url="http://dev.mysql.com/doc/">http://dev.mysql.com/doc/</ulink>.
</para>
@@ -42,6 +47,498 @@
</section>
+ <section id="apis-php-mysqli.overview">
+
+ <title>Overview</title>
+
+ <para>
+ <link linkend="php-api-copyright">Copyright (c) 1997-2008 the PHP
+ Documentation Group.</link>
+ </para>
+
+ <para>
+ This section provides an introduction to the options available to
+ you when developing a PHP application that needs to interact with
+ a MySQL database.
+ </para>
+
+ <para>
+ <emphasis>What is an API?</emphasis>
+ </para>
+
+ <para>
+ An Application Programming Interface, or API, defines the classes,
+ methods, functions and variables that your application will need
+ to call in order to carry out its desired task. In the case of PHP
+ applications that need to communicate with databases the necessary
+ APIs are usually exposed via PHP extensions.
+ </para>
+
+ <para>
+ APIs can be procedural or object-oriented. With a procedural API
+ you call functions to carry out tasks, with the object-oriented
+ API you instantiate classes and then call methods on the resulting
+ objects. Of the two the latter is usually the preferred interface,
+ as it is more modern and leads to better organised code.
+ </para>
+
+ <para>
+ When writing PHP applications that need to connect to the MySQL
+ server there are several API options available. This document
+ discusses what is available and how to select the best solution
+ for your application.
+ </para>
+
+ <para>
+ <emphasis>What is a Connector?</emphasis>
+ </para>
+
+ <para>
+ In the MySQL documentation, the term
+ <emphasis>connector</emphasis> refers to a piece of software that
+ allows your application to connect to the MySQL database server.
+ MySQL provides connectors for a variety of languages, including
+ PHP.
+ </para>
+
+ <para>
+ If your PHP application needs to communicate with a database
+ server you will need to write PHP code to perform such activities
+ as connecting to the database server, querying the database and
+ other database-related functions. Software is required to provide
+ the API that your PHP application will use, and also handle the
+ communication between your application and the database server,
+ possibly using other intermediate libraries where necessary. This
+ software is known generically as a connector, as it allows your
+ application to <emphasis>connect</emphasis> to a database server.
+ </para>
+
+ <para>
+ <emphasis>What is a Driver?</emphasis>
+ </para>
+
+ <para>
+ A driver is a piece of software designed to communicate with a
+ specific type of database server. The driver may also call a
+ library, such as the MySQL Client Library or the MySQL Native
+ Driver. These libraries implement the low-level protocol used to
+ communicate with the MySQL database server.
+ </para>
+
+ <para>
+ By way of an example, the <link linkend="mysqli.overview.pdo">PHP
+ Data Objects (PDO)</link> database abstraction layer may use one
+ of several database-specific drivers. One of the drivers it has
+ available is the PDO MYSQL driver, which allows it to interface
+ with the MySQL server.
+ </para>
+
+ <para>
+ Sometimes people use the terms connector and driver
+ interchangeably, this can be confusing. In the MySQL-related
+ documentation the term <quote>driver</quote> is reserved for
+ software that provides the database-specific part of a connector
+ package.
+ </para>
+
+ <para>
+ <emphasis>What is an Extension?</emphasis>
+ </para>
+
+ <para>
+ In the PHP documentation you will come across another term -
+ <emphasis>extension</emphasis>. The PHP code consists of a core,
+ with optional extensions to the core functionality. PHP's
+ MySQL-related extensions, such as the <literal>mysqli</literal>
+ extension, and the <literal>mysql</literal> extension, are
+ implemented using the PHP extension framework.
+ </para>
+
+ <para>
+ An extension typically exposes an API to the PHP programmer, to
+ allow its facilities to be used programmatically. However, some
+ extensions which use the PHP extension framework do not expose an
+ API to the PHP programmer.
+ </para>
+
+ <para>
+ The PDO MySQL driver extension, for example, does not expose an
+ API to the PHP programmer, but provides an interface to the PDO
+ layer above it.
+ </para>
+
+ <para>
+ The terms API and extension should not be taken to mean the same
+ thing, as an extension may not necessarily expose an API to the
+ programmer.
+ </para>
+
+ <para>
+ <emphasis>What are the main PHP API offerings for using
+ MySQL?</emphasis>
+ </para>
+
+ <para>
+ There are three main API options when considering connecting to a
+ MySQL database server:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ PHP's MySQL Extension
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ PHP's mysqli Extension
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ PHP Data Objects (PDO)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ Each has its own advantages and disadvantages. The following
+ discussion aims to give a brief introduction to the key aspects of
+ each API.
+ </para>
+
+ <para>
+ <emphasis>What is PHP's MySQL Extension?</emphasis>
+ </para>
+
+ <para>
+ This is the original extension designed to allow you to develop
+ PHP applications that interact with a MySQL database. The
+ <literal>mysql</literal> extension provides a procedural interface
+ and is intended for use only with MySQL versions older than 4.1.3.
+ This extension can be used with versions of MySQL 4.1.3 or newer,
+ but not all of the latest MySQL server features will be available.
+ </para>
+
+ <note>
+ <para>
+ If you are using MySQL versions 4.1.3 or later it is
+ <emphasis>strongly</emphasis> recommended that you use the
+ <literal>mysqli</literal> extension instead.
+ </para>
+ </note>
+
+ <para>
+ The <literal>mysql</literal> extension source code is located in
+ the PHP extension directory <filename>ext/mysql</filename>.
+ </para>
+
+ <para>
+ For further information on the <literal>mysql</literal> extension,
+ see <xref linkend="book.mysql"/>.
+ </para>
+
+ <para>
+ <emphasis>What is PHP's mysqli Extension?</emphasis>
+ </para>
+
+ <para>
+ The <literal>mysqli</literal> extension, or as it is sometimes
+ known, the MySQL <emphasis>improved</emphasis> extension, was
+ developed to take advantage of new features found in MySQL systems
+ versions 4.1.3 and newer. The <literal>mysqli</literal> extension
+ is included with PHP versions 5 and later.
+ </para>
+
+ <para>
+ The <literal>mysqli</literal> extension has a number of benefits,
+ the key enhancements over the <literal>mysql</literal> extension
+ being:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Object-oriented interface
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support for Prepared Statements
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support for Multiple Statements
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support for Transactions
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Enhanced debugging capabilities
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Embedded server support
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ <note>
+ <para>
+ If you are using MySQL versions 4.1.3 or later it is
+ <emphasis>strongly</emphasis> recommended that you use this
+ extension.
+ </para>
+ </note>
+
+ <para>
+ As well as the object-oriented interface the extension also
+ provides a procedural interface.
+ </para>
+
+ <para>
+ The <literal>mysqli</literal> extension is built using the PHP
+ extension frameowrk, its source code is located in the directory
+ <filename>ext/mysqli</filename>.
+ </para>
+
+ <para>
+ For further information on the <literal>mysqli</literal>
+ extension, see <xref linkend="book.mysqli"/>.
+ </para>
+
+ <para id="apis-php-mysqli.overview.pdo">
+ <emphasis>What is PDO?</emphasis>
+ </para>
+
+ <para>
+ PHP Data Objects, or PDO, is a database abstraction layer
+ specifically for PHP applications. PDO provides a consistent API
+ for your PHP application regardless of the type of database server
+ your application will connect to. In theory, if you are using the
+ PDO API, you could switch the database server you used, from say
+ Firebird to MySQL, and only need to make minor changes to your PHP
+ code.
+ </para>
+
+ <para>
+ Other examples of database abstraction layers include JDBC for
+ Java applications and DBI for Perl.
+ </para>
+
+ <para>
+ While PDO has its advantages, such as a clean, simple, portable
+ API, its main disadvantage is that it doesn't allow you to
+ use all of the advanced features that are available in the latest
+ versions of MySQL server. For example, PDO does not allow you to
+ use MySQL's support for Multiple Statements.
+ </para>
+
+ <para>
+ PDO is implemented using the PHP extension framework, its source
+ code is located in the directory <filename>ext/pdo</filename>.
+ </para>
+
+ <para>
+ For further information on PDO, see the
+ <xref linkend="book.pdo"/>.
+ </para>
+
+ <para>
+ <emphasis>What is the PDO MYSQL driver?</emphasis>
+ </para>
+
+ <para>
+ The PDO MYSQL driver is not an API as such, at least from the PHP
+ programmer's perspective. In fact the PDO MYSQL driver sits
+ in the layer below PDO itself and provides MySQL-specific
+ functionality. The programmer still calls the PDO API, but PDO
+ uses the PDO MYSQL driver to carry out communication with the
+ MySQL server.
+ </para>
+
+ <para>
+ The PDO MYSQL driver is one of several available PDO drivers.
+ Other PDO drivers available include those for the Firebird and
+ PostgreSQL database servers.
+ </para>
+
+ <para>
+ The PDO MYSQL driver is implemented using the PHP extension
+ framework. Its source code is located in the directory
+ <filename>ext/pdo_mysql</filename>. It does not expose an API to
+ the PHP programmer.
+ </para>
+
+ <para>
+ For further information on the PDO MYSQL driver, see
+ <xref linkend="ref.pdo-mysql"/>.
+ </para>
+
+ <para>
+ <emphasis>What is PHP's MySQL Native Driver?</emphasis>
+ </para>
+
+ <para>
+ In order to communicate with the MySQL database server the
+ <literal>mysql</literal> extension, <literal>mysqli</literal> and
+ the PDO MYSQL driver each use a low-level library that implements
+ the required protocol. In the past, the only available library was
+ the MySQL Client Library, otherwise known as
+ <literal>libmysql</literal>.
+ </para>
+
+ <para>
+ However, the interface presented by <literal>libmysql</literal>
+ was not optimized for communication with PHP applications, as
+ <literal>libmysql</literal> was originally designed with C
+ applications in mind. For this reason the MySQL Native Driver,
+ <literal>mysqlnd</literal>, was developed as an alternative to
+ <literal>libmysql</literal> for PHP applications.
+ </para>
+
+ <para>
+ The <literal>mysql</literal> extension, the
+ <literal>mysqli</literal> extension and the PDO MySQL driver can
+ each be individually configured to use either
+ <literal>libmysql</literal> or <literal>mysqlnd</literal>. As
+ <literal>mysqlnd</literal> is designed specifically to be utilised
+ in the PHP system it has numerous memory and speed enhancements
+ over <literal>libmysql</literal>. You are strongly encouraged to
+ take advantage of these improvements.
+ </para>
+
+ <note>
+ <para>
+ The MySQL Native Driver can only be used with MySQL server
+ versions 4.1.3 and later.
+ </para>
+ </note>
+
+ <para>
+ The MySQL Native Driver is implemented using the PHP extension
+ framework. The source code is located in
+ <filename>ext/mysqlnd</filename>. It does not expose an API to the
+ PHP programmer.
+ </para>
+
+ <para>
+ <emphasis>Comparison of Features</emphasis>
+ </para>
+
+ <para>
+ The following table compares the functionality of the three main
+ methods of connecting to MySQL from PHP:
+ </para>
+
+ <informaltable>
+ <tgroup cols="4">
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <col align="" />
+ <col align="" />
+ <col align="" />
+ <col align="" />
+ <thead>
+ <row>
+ <entry/>
+ <entry>PHP's mysqli Extension</entry>
+ <entry>PDO (Using PDO MySQL Driver and MySQL Native Driver)</entry>
+ <entry>PHP's MySQL Extension</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>PHP version introduced</entry>
+ <entry>5.0</entry>
+ <entry>5.0</entry>
+ <entry>Prior to 3.0</entry>
+ </row>
+ <row>
+ <entry>Included with PHP 5.x</entry>
+ <entry>yes</entry>
+ <entry>yes</entry>
+ <entry>Yes</entry>
+ </row>
+ <row>
+ <entry>Comes with PHP 6.0</entry>
+ <entry>Yes</entry>
+ <entry>Yes</entry>
+ <entry>Yes</entry>
+ </row>
+ <row>
+ <entry>MySQL development status</entry>
+ <entry>Active development</entry>
+ <entry>Active development as of PHP 5.3</entry>
+ <entry>Maintenance only</entry>
+ </row>
+ <row>
+ <entry>Recommended by MySQL for new projects</entry>
+ <entry>Yes - preferred option</entry>
+ <entry>Yes</entry>
+ <entry>No</entry>
+ </row>
+ <row>
+ <entry>API supports Charsets</entry>
+ <entry>Yes</entry>
+ <entry>Yes</entry>
+ <entry>No</entry>
+ </row>
+ <row>
+ <entry>API supports server-side Prepared Statements</entry>
+ <entry>Yes</entry>
+ <entry>Yes</entry>
+ <entry>No</entry>
+ </row>
+ <row>
+ <entry>API supports client-side Prepared Statements</entry>
+ <entry>No</entry>
+ <entry>Yes</entry>
+ <entry>No</entry>
+ </row>
+ <row>
+ <entry>API supports Stored Procedures</entry>
+ <entry>Yes</entry>
+ <entry>Yes</entry>
+ <entry>No</entry>
+ </row>
+ <row>
+ <entry>API supports Multiple Statements</entry>
+ <entry>Yes</entry>
+ <entry>Most</entry>
+ <entry>No</entry>
+ </row>
+ <row>
+ <entry>Supports all MySQL 4.1+ functionality</entry>
+ <entry>Yes</entry>
+ <entry>Most</entry>
+ <entry>No</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ </section>
+
<section id="apis-php-mysqli.setup">
<title>Installing/Configuring</title>
@@ -635,7 +1132,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">BLOB</literal>
+ Field is defined as <literal>BLOB</literal>
</para>
</listitem>
</varlistentry>
@@ -683,7 +1180,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">TIMESTAMP</literal>
+ Field is defined as <literal>TIMESTAMP</literal>
</para>
</listitem>
</varlistentry>
@@ -707,7 +1204,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">NUMERIC</literal>
+ Field is defined as <literal>NUMERIC</literal>
</para>
</listitem>
</varlistentry>
@@ -743,7 +1240,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">DECIMAL</literal>
+ Field is defined as <literal>DECIMAL</literal>
</para>
</listitem>
</varlistentry>
@@ -755,9 +1252,8 @@
<listitem>
<para>
- Precision math <literal role="type">DECIMAL</literal> or
- <literal role="type">NUMERIC</literal> field (MySQL 5.0.3
- and up)
+ Precision math <literal>DECIMAL</literal> or
+ <literal>NUMERIC</literal> field (MySQL 5.0.3 and up)
</para>
</listitem>
</varlistentry>
@@ -769,8 +1265,8 @@
<listitem>
<para>
- Field is defined as <literal role="type">BIT</literal>
- (MySQL 5.0.3 and up)
+ Field is defined as <literal>BIT</literal> (MySQL 5.0.3 and
+ up)
</para>
</listitem>
</varlistentry>
@@ -782,7 +1278,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">TINYINT</literal>
+ Field is defined as <literal>TINYINT</literal>
</para>
</listitem>
</varlistentry>
@@ -794,7 +1290,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">INT</literal>
+ Field is defined as <literal>SMALLINT</literal>
</para>
</listitem>
</varlistentry>
@@ -806,7 +1302,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">INT</literal>
+ Field is defined as <literal>INT</literal>
</para>
</listitem>
</varlistentry>
@@ -818,7 +1314,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">FLOAT</literal>
+ Field is defined as <literal>FLOAT</literal>
</para>
</listitem>
</varlistentry>
@@ -830,7 +1326,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">DOUBLE</literal>
+ Field is defined as <literal>DOUBLE</literal>
</para>
</listitem>
</varlistentry>
@@ -854,7 +1350,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">TIMESTAMP</literal>
+ Field is defined as <literal>TIMESTAMP</literal>
</para>
</listitem>
</varlistentry>
@@ -866,7 +1362,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">BIGINT</literal>
+ Field is defined as <literal>BIGINT</literal>
</para>
</listitem>
</varlistentry>
@@ -878,7 +1374,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">MEDIUMINT</literal>
+ Field is defined as <literal>MEDIUMINT</literal>
</para>
</listitem>
</varlistentry>
@@ -890,7 +1386,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">DATE</literal>
+ Field is defined as <literal>DATE</literal>
</para>
</listitem>
</varlistentry>
@@ -902,7 +1398,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">TIME</literal>
+ Field is defined as <literal>TIME</literal>
</para>
</listitem>
</varlistentry>
@@ -914,7 +1410,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">DATETIME</literal>
+ Field is defined as <literal>DATETIME</literal>
</para>
</listitem>
</varlistentry>
@@ -926,7 +1422,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">YEAR</literal>
+ Field is defined as <literal>YEAR</literal>
</para>
</listitem>
</varlistentry>
@@ -938,7 +1434,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">DATE</literal>
+ Field is defined as <literal>DATE</literal>
</para>
</listitem>
</varlistentry>
@@ -950,7 +1446,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">ENUM</literal>
+ Field is defined as <literal>ENUM</literal>
</para>
</listitem>
</varlistentry>
@@ -974,7 +1470,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">TINYBLOB</literal>
+ Field is defined as <literal>TINYBLOB</literal>
</para>
</listitem>
</varlistentry>
@@ -986,8 +1482,7 @@
<listitem>
<para>
- Field is defined as
- <literal role="type">MEDIUMBLOB</literal>
+ Field is defined as <literal>MEDIUMBLOB</literal>
</para>
</listitem>
</varlistentry>
@@ -999,7 +1494,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">LONGBLOB</literal>
+ Field is defined as <literal>LONGBLOB</literal>
</para>
</listitem>
</varlistentry>
@@ -1011,7 +1506,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">BLOB</literal>
+ Field is defined as <literal>BLOB</literal>
</para>
</listitem>
</varlistentry>
@@ -1023,7 +1518,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">VARCHAR</literal>
+ Field is defined as <literal>VARCHAR</literal>
</para>
</listitem>
</varlistentry>
@@ -1035,7 +1530,7 @@
<listitem>
<para>
- Field is defined as <literal role="type">CHAR</literal>
+ Field is defined as <literal>CHAR</literal>
</para>
</listitem>
</varlistentry>
@@ -1089,10 +1584,743 @@
</listitem>
</varlistentry>
+ <varlistentry id="apis-php-constantmysqli-enum-flag">
+ <term>
+ <constant>MYSQLI_ENUM_FLAG</constant>
+ </term>
+
+ <listitem>
+ <para>
+ Field is defined as <literal>ENUM</literal>. Available since
+ PHP 5.3.0.
+ </para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</section>
+ <section id="apis-php-mysqli.summary">
+
+ <title>The MySQLi Extension Function Summary</title>
+
+ <para>
+ <link linkend="php-api-copyright">Copyright (c) 1997-2008 the PHP
+ Documentation Group.</link>
+ </para>
+
+ <informaltable>
+ <tgroup cols="4">
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <thead>
+ <row>
+ <entry>MySQLi Class</entry>
+ </row>
+ <row>
+ <entry>OOP Interface</entry>
+ <entry>Procedural Interface</entry>
+ <entry>Alias (Do not use)</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><emphasis>Properties</emphasis></entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.affected-rows">$mysqli->affected_rows</link></entry>
+ <entry><function>mysqli_affected_rows</function></entry>
+ <entry>N/A</entry>
+ <entry>Gets the number of affected rows in a previous MySQL operation</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.connect-errno">$mysqli->connect_errno</link></entry>
+ <entry><function>mysqli_connect_errno</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the error code from last connect call</entry>
+ </row>
+ <row>
+ <entry><link linkend="apis-php-mysqli.connect-error">$mysqli->connect_error</link></entry>
+ <entry><function>mysqli_connect_error</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns a string description of the last connect error</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.errno">$mysqli->errno</link></entry>
+ <entry><link linkend="apis-php-mysqli.errno"><function>mysqli_errno</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Returns the error code for the most recent function call</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.error">$mysqli->error</link></entry>
+ <entry><link linkend="apis-php-mysqli.error"><function>mysqli_error</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Returns a string description of the last error</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.field-count">$mysqli->field_count</link></entry>
+ <entry><function>mysqli_field_count</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the number of columns for the most recent query</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.get-host-info">$mysqli->host_info</link></entry>
+ <entry><function>mysqli_get_host_info</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns a string representing the type of connection used</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.get-proto-info">$mysqli->protocol_version</link></entry>
+ <entry><function>mysqli_get_proto_info</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the version of the MySQL protocol used</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.get-server-info">$mysqli->server_info</link></entry>
+ <entry><function>mysqli_get_server_info</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the version of the MySQL server</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.get-server-version">$mysqli->server_version</link></entry>
+ <entry><function>mysqli_get_server_version</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the version of the MySQL server as an integer</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.info">$mysqli->info</link></entry>
+ <entry><link linkend="apis-php-mysqli.info"><function>mysqli_info</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Retrieves information about the most recently executed query</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.insert-id">$mysqli->insert_id</link></entry>
+ <entry><function>mysqli_insert_id</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the auto generated id used in the last query</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.sqlstate">$mysqli->sqlstate</link></entry>
+ <entry><link linkend="apis-php-mysqli.sqlstate"><function>mysqli_sqlstate</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Returns the SQLSTATE error from previous MySQL operation</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli.warning-count">$mysqli->warning_count</link></entry>
+ <entry><function>mysqli_warning_count</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the number of warnings from the last query for the given link</entry>
+ </row>
+ <row>
+ <entry><emphasis>Methods</emphasis></entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->autocommit</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.autocommit"><function>mysqli_autocommit</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Turns on or off auto-commiting database modifications</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->change_user</methodname></entry>
+ <entry><function>mysqli_change_user</function></entry>
+ <entry>N/A</entry>
+ <entry>Changes the user of the specified database connection</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->character_set_name</methodname>,<link linkend="mysqli.character-set-name">
+ mysqli->client_encoding</link></entry>
+ <entry><function>mysqli_character_set_name</function></entry>
+ <entry><function>mysqli_client_encoding</function></entry>
+ <entry>Returns the default character set for the database connection</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->close</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.close"><function>mysqli_close</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Closes a previously opened database connection</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->commit</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.commit"><function>mysqli_commit</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Commits the current transaction</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli::__construct</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.connect"><function>mysqli_connect</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Open a new connection to the MySQL server [Note: static (i.e. class)
+ method]</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->debug</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.debug"><function>mysqli_debug</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Performs debugging operations</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->dump_debug_info</methodname></entry>
+ <entry><function>mysqli_dump_debug_info</function></entry>
+ <entry>N/A</entry>
+ <entry>Dump debugging information into the log</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->get_charset</methodname></entry>
+ <entry><function>mysqli_get_charset</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns a character set object</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->get_client_info</methodname></entry>
+ <entry><function>mysqli_get_client_info</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the MySQL client version as a string</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->get_client_version</methodname></entry>
+ <entry><function>mysqli_get_client_version</function></entry>
+ <entry>N/A</entry>
+ <entry>Get MySQL client info</entry>
+ </row>
+ <row>
+ <entry>$mysqli->get_connection_stats()</entry>
+ <entry>mysqli_get_connection_stats()</entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED [mysqlnd only]</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->get_server_info</methodname></entry>
+ <entry><function>mysqli_get_server_info</function></entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->get_warnings</methodname></entry>
+ <entry><function>mysqli_get_warnings</function></entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_init</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.init"><function>mysqli_init</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Initializes MySQLi and returns a resource for use with
+ mysqli_real_connect. [Not called on an object, as it
+ returns a $mysqli object.]</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->kill</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.kill"><function>mysqli_kill</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Asks the server to kill a MySQL thread</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->more_results</methodname></entry>
+ <entry><function>mysqli_more_results</function></entry>
+ <entry>N/A</entry>
+ <entry>Check if there are any more query results from a multi query</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->multi_query</methodname></entry>
+ <entry><function>mysqli_multi_query</function></entry>
+ <entry>N/A</entry>
+ <entry>Performs a query on the database</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->next_result</methodname></entry>
+ <entry><function>mysqli_next_result</function></entry>
+ <entry>N/A</entry>
+ <entry>Prepare next result from multi_query</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->options</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.options"><function>mysqli_options</function></link></entry>
+ <entry><function>mysqli_set_opt</function></entry>
+ <entry>Set options</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->ping</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.ping"><function>mysqli_ping</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Pings a server connection, or tries to reconnect if the connection has
+ gone down</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->prepare</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.prepare"><function>mysqli_prepare</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Prepare a SQL statement for execution</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->query</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.query"><function>mysqli_query</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Performs a query on the database</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->real_connect</methodname></entry>
+ <entry><function>mysqli_real_connect</function></entry>
+ <entry>N/A</entry>
+ <entry>Opens a connection to a mysql server</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->real_escape_string</methodname>,
+ <methodname>mysqli->escape_string</methodname></entry>
+ <entry><function>mysqli_real_escape_string</function></entry>
+ <entry><function>mysqli_escape_string</function></entry>
+ <entry>Escapes special characters in a string for use in a SQL statement,
+ taking into account the current charset of the connection</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->real_query</methodname></entry>
+ <entry><function>mysqli_real_query</function></entry>
+ <entry>N/A</entry>
+ <entry>Execute an SQL query</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->rollback</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.rollback"><function>mysqli_rollback</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Rolls back current transaction</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->select_db</methodname></entry>
+ <entry><function>mysqli_select_db</function></entry>
+ <entry>N/A</entry>
+ <entry>Selects the default database for database queries</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->set_charset</methodname></entry>
+ <entry><function>mysqli_set_charset</function></entry>
+ <entry>N/A</entry>
+ <entry>Sets the default client character set</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->set_local_infile_default</methodname></entry>
+ <entry><function>mysqli_set_local_infile_default</function></entry>
+ <entry>N/A</entry>
+ <entry>Unsets user defined handler for load local infile command</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->set_local_infile_handler</methodname></entry>
+ <entry><function>mysqli_set_local_infile_handler</function></entry>
+ <entry>N/A</entry>
+ <entry>Set callback function for LOAD DATA LOCAL INFILE command</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->ssl_set</methodname></entry>
+ <entry><function>mysqli_ssl_set</function></entry>
+ <entry>N/A</entry>
+ <entry>Used for establishing secure connections using SSL</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->stat</methodname></entry>
+ <entry><link linkend="apis-php-mysqli.stat"><function>mysqli_stat</function></link></entry>
+ <entry>N/A</entry>
+ <entry>Gets the current system status</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->stmt_init</methodname></entry>
+ <entry><function>mysqli_stmt_init</function></entry>
+ <entry>N/A</entry>
+ <entry>Initializes a statement and returns an object for use with
+ mysqli_stmt_prepare</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->store_result</methodname></entry>
+ <entry><function>mysqli_store_result</function></entry>
+ <entry>N/A</entry>
+ <entry>Transfers a result set from the last query</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->thread_id</methodname></entry>
+ <entry><function>mysqli_thread_id</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the thread ID for the current connection</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->thread_safe</methodname></entry>
+ <entry><function>mysqli_thread_safe</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns whether thread safety is given or not</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli->use_result</methodname></entry>
+ <entry><function>mysqli_use_result</function></entry>
+ <entry>N/A</entry>
+ <entry>Initiate a result set retrieval</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <informaltable>
+ <tgroup cols="4">
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <thead>
+ <row>
+ <entry>MySQL_STMT</entry>
+ </row>
+ <row>
+ <entry>OOP Interface</entry>
+ <entry>Procedural Interface</entry>
+ <entry>Alias (Do not use)</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><emphasis>Properties</emphasis></entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-stmt.affected-rows">$mysqli_stmt->affected_rows</link></entry>
+ <entry><function>mysqli_stmt_affected_rows</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the total number of rows changed, deleted, or inserted by the
+ last executed statement</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-stmt.errno">$mysqli_stmt->errno</link></entry>
+ <entry><function>mysqli_stmt_errno</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the error code for the most recent statement call</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-stmt.error">$mysqli_stmt->error</link></entry>
+ <entry><function>mysqli_stmt_error</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns a string description for last statement error</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-stmt.field-count">$mysqli_stmt->field_count</link></entry>
+ <entry><function>mysqli_stmt_field_count</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the number of field in the given statement - not documented</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-stmt.insert-id">$mysqli_stmt->insert_id</link></entry>
+ <entry><function>mysqli_stmt_insert_id</function></entry>
+ <entry>N/A</entry>
+ <entry>Get the ID generated from the previous INSERT operation</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-stmt.num-rows">$mysqli_stmt->num_rows</link></entry>
+ <entry><function>mysqli_stmt_num_rows</function></entry>
+ <entry>N/A</entry>
+ <entry>Return the number of rows in statements result set</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-stmt.param-count">$mysqli_stmt->param_count</link></entry>
+ <entry><function>mysqli_stmt_param_count</function></entry>
+ <entry><function>mysqli_param_count</function></entry>
+ <entry>Returns the number of parameter for the given statement</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-stmt.sqlstate">$mysqli_stmt->sqlstate</link></entry>
+ <entry><function>mysqli_stmt_sqlstate</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns SQLSTATE error from previous statement operation</entry>
+ </row>
+ <row>
+ <entry><emphasis>Methods</emphasis></entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->attr_get</methodname></entry>
+ <entry><function>mysqli_stmt_attr_get</function></entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->attr_set</methodname></entry>
+ <entry><function>mysqli_stmt_attr_set</function></entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->bind_param</methodname></entry>
+ <entry><function>mysqli_stmt_bind_param</function></entry>
+ <entry><function>mysqli_bind_param</function></entry>
+ <entry>Binds variables to a prepared statement as parameters</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->bind_result</methodname></entry>
+ <entry><function>mysqli_stmt_bind_result</function></entry>
+ <entry><function>mysqli_bind_result</function></entry>
+ <entry>Binds variables to a prepared statement for result storage</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->close</methodname></entry>
+ <entry><function>mysqli_stmt_close</function></entry>
+ <entry>N/A</entry>
+ <entry>Closes a prepared statement</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->data_seek</methodname></entry>
+ <entry><function>mysqli_stmt_data_seek</function></entry>
+ <entry>N/A</entry>
+ <entry>Seeks to an arbitrary row in statement result set</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->execute</methodname></entry>
+ <entry><function>mysqli_stmt_execute</function></entry>
+ <entry><function>mysqli_execute</function></entry>
+ <entry>Executes a prepared Query</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->fetch</methodname></entry>
+ <entry><function>mysqli_stmt_fetch</function></entry>
+ <entry><function>mysqli_fetch</function></entry>
+ <entry>Fetch results from a prepared statement into the bound variables</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->free_result</methodname></entry>
+ <entry><function>mysqli_stmt_free_result</function></entry>
+ <entry>N/A</entry>
+ <entry>Frees stored result memory for the given statement handle</entry>
+ </row>
+ <row>
+ <entry>$mysqli_stmt->get_result()</entry>
+ <entry>mysqli_stmt_get_result</entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED [mysqlnd only]</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->get_warnings</methodname></entry>
+ <entry><function>mysqli_stmt_get_warnings</function></entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED</entry>
+ </row>
+ <row>
+ <entry>$mysqli_stmt->more_results()</entry>
+ <entry>mysqli_stmt_more_results()</entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED [mysqlnd only]</entry>
+ </row>
+ <row>
+ <entry>$mysqli_stmt->next_result()</entry>
+ <entry>mysqli_stmt_next_result()</entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED [mysqlnd only]</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->num_rows</methodname></entry>
+ <entry><function>mysqli_stmt_num_rows</function></entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED [see also num_rows property]</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->prepare</methodname></entry>
+ <entry><function>mysqli_stmt_prepare</function></entry>
+ <entry>N/A</entry>
+ <entry>Prepare a SQL statement for execution</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->reset</methodname></entry>
+ <entry><function>mysqli_stmt_reset</function></entry>
+ <entry>N/A</entry>
+ <entry>Resets a prepared statement</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->result_metadata</methodname></entry>
+ <entry><function>mysqli_stmt_result_metadata</function></entry>
+ <entry><function>mysqli_get_metadata</function></entry>
+ <entry>Returns result set metadata from a prepared statement</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->send_long_data</methodname></entry>
+ <entry><function>mysqli_stmt_send_long_data</function></entry>
+ <entry><function>mysqli_send_long_data</function></entry>
+ <entry>Send data in blocks</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_stmt->store_result</methodname></entry>
+ <entry><function>mysqli_stmt_store_result</function></entry>
+ <entry>N/A</entry>
+ <entry>Transfers a result set from a prepared statement</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <informaltable>
+ <tgroup cols="4">
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <thead>
+ <row>
+ <entry>MySQLi_RESULT</entry>
+ </row>
+ <row>
+ <entry>OOP Interface</entry>
+ <entry>Procedural Interface</entry>
+ <entry>Alias (Do not use)</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><emphasis>Properties</emphasis></entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-result.current-field">$mysqli_result->current_field</link></entry>
+ <entry><function>mysqli_field_tell</function></entry>
+ <entry>N/A</entry>
+ <entry>Get current field offset of a result pointer</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-result.field-count">$mysqli_result->field_count</link></entry>
+ <entry><function>mysqli_num_fields</function></entry>
+ <entry>N/A</entry>
+ <entry>Get the number of fields in a result</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-result.lengths">$mysqli_result->lengths</link></entry>
+ <entry><function>mysqli_fetch_lengths</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the lengths of the columns of the current row in the result set</entry>
+ </row>
+ <row>
+ <entry><link linkend="mysqli-result.num-rows">$mysqli_result->num_rows</link></entry>
+ <entry><function>mysqli_num_rows</function></entry>
+ <entry>N/A</entry>
+ <entry>Gets the number of rows in a result</entry>
+ </row>
+ <row>
+ <entry><emphasis>Methods</emphasis></entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_result->data_seek</methodname></entry>
+ <entry><function>mysqli_data_seek</function></entry>
+ <entry>N/A</entry>
+ <entry>Adjusts the result pointer to an arbitary row in the result</entry>
+ </row>
+ <row>
+ <entry>$mysqli_result->fetch_all()</entry>
+ <entry>mysqli_fetch_all()</entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED [mysqlnd only]</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_result->fetch_array</methodname></entry>
+ <entry><function>mysqli_fetch_array</function></entry>
+ <entry>N/A</entry>
+ <entry>Fetch a result row as an associative, a numeric array, or both</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_result->fetch_assoc</methodname></entry>
+ <entry><function>mysqli_fetch_assoc</function></entry>
+ <entry>N/A</entry>
+ <entry>Fetch a result row as an associative array</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_result->fetch_field_direct</methodname></entry>
+ <entry><function>mysqli_fetch_field_direct</function></entry>
+ <entry>N/A</entry>
+ <entry>Fetch meta-data for a single field</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_result->fetch_field</methodname></entry>
+ <entry><function>mysqli_fetch_field</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the next field in the result set</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_result->fetch_fields</methodname></entry>
+ <entry><function>mysqli_fetch_fields</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns an array of objects representing the fields in a result set</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_result->fetch_object</methodname></entry>
+ <entry><function>mysqli_fetch_object</function></entry>
+ <entry>N/A</entry>
+ <entry>Returns the current row of a result set as an object</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_result->fetch_row</methodname></entry>
+ <entry><function>mysqli_fetch_row</function></entry>
+ <entry>N/A</entry>
+ <entry>Get a result row as an enumerated array</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_result->field_seek</methodname></entry>
+ <entry><function>mysqli_field_seek</function></entry>
+ <entry>N/A</entry>
+ <entry>Set result pointer to a specified field offset</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_result->free</methodname>,
+ <link linkend="mysqli-result.free">mysqli_result->close</link>,
+ <link linkend="mysqli-result.free">mysqli_result->free_result</link></entry>
+ <entry><function>mysqli_free_result</function></entry>
+ <entry>N/A</entry>
+ <entry>Frees the memory associated with a result</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <informaltable>
+ <tgroup cols="4">
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <colspec colwidth="25*"/>
+ <thead>
+ <row>
+ <entry>MySQL_Driver</entry>
+ </row>
+ <row>
+ <entry>OOP Interface</entry>
+ <entry>Procedural Interface</entry>
+ <entry>Alias (Do not use)</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><emphasis>Properties</emphasis></entry>
+ </row>
+ <row>
+ <entry>N/A</entry>
+ </row>
+ <row>
+ <entry><emphasis>Methods</emphasis></entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_driver->embedded_server_end</methodname></entry>
+ <entry><function>mysqli_embedded_server_end</function></entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED</entry>
+ </row>
+ <row>
+ <entry><methodname>mysqli_driver->embedded_server_start</methodname></entry>
+ <entry><function>mysqli_embedded_server_start</function></entry>
+ <entry>N/A</entry>
+ <entry>NOT DOCUMENTED</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <note>
+ <para>
+ Alias functions are provided for backward compatibility purposes
+ only. Do not use them in new projects.
+ </para>
+ </note>
+
+ </section>
+
<section id="apis-php-class.mysqli">
<title>The MySQLi class (<literal>MySQLi</literal>)</title>
@@ -1115,59 +2343,45 @@
<fieldsynopsis>
<type>int</type><varname>affected_rows</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>string</type><varname>connect_errno</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>string</type><varname>connect_error</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>errno</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>string</type><varname>error</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>field_count</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>string</type><varname>host_info</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>string</type><varname>protocol_version</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>string</type><varname>server_info</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>server_version</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>string</type><varname>info</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>insert_id</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>string</type><varname>sqlstate</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>thread_id</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>warning_count</varname>
</fieldsynopsis>
@@ -1178,14 +2392,12 @@
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::autocommit</methodname>
<methodparam>
<type>bool</type><parameter>mode</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::change_user</methodname>
<methodparam>
@@ -1200,32 +2412,26 @@
<type>string</type><parameter>database</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli::character_set_name</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::close</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::commit</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_connect_errno</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli_connect_error</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>mysqli</type><methodname>mysqli_connect</methodname>
<methodparam>
@@ -1252,131 +2458,110 @@
<type>string</type><parameter>socket</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::debug</methodname>
<methodparam>
<type>string</type><parameter>message</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::dump_debug_info</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_errno</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli_error</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_field_count</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>object</type><methodname>mysqli::get_charset</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli::get_client_info</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli::get_client_version</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli_get_host_info</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_get_proto_info</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli_get_server_info</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_get_server_version</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>object</type><methodname>mysqli::get_warnings</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli_info</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>mysqli</type><methodname>init</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_insert_id</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::kill</methodname>
<methodparam>
<type>int</type><parameter>processid</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::more_results</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::multi_query</methodname>
<methodparam>
<type>string</type><parameter>query</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::next_result</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::options</methodname>
<methodparam>
@@ -1387,19 +2572,16 @@
<type>mixed</type><parameter>value</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::ping</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>mysqli_stmt</type><methodname>prepare</methodname>
<methodparam>
<type>string</type><parameter>query</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>mixed</type><methodname>mysqli::query</methodname>
<methodparam>
@@ -1410,7 +2592,6 @@
<type>int</type><parameter>resultmode</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::real_connect</methodname>
<methodparam>
@@ -1441,47 +2622,40 @@
<type>int</type><parameter>flags</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli::escape_string</methodname>
<methodparam>
<type>string</type><parameter>escapestr</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>real_query</methodname>
<methodparam>
<type>string</type><parameter>query</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::rollback</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::select_db</methodname>
<methodparam>
<type>string</type><parameter>dbname</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::set_charset</methodname>
<methodparam>
<type>string</type><parameter>charset</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>void</type><methodname>mysqli_set_local_infile_default</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_set_local_infile_handler</methodname>
<methodparam>
@@ -1492,14 +2666,12 @@
<type>callback</type><parameter>read_func</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli_sqlstate</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli::ssl_set</methodname>
<methodparam>
@@ -1522,39 +2694,32 @@
<type>string</type><parameter>cipher</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli::stat</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>mysqli_stmt</type><methodname>stmt_init</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>mysqli_result</type><methodname>store_result</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_thread_id</methodname>
<methodparam>
<type>mysqli</type><parameter>link</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_thread_safe</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>mysqli_result</type><methodname>use_result</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_warning_count</methodname>
<methodparam>
@@ -1620,10 +2785,8 @@
<para>
Returns the number of rows affected by the last
- <literal role="stmt">INSERT</literal>,
- <literal role="stmt">UPDATE</literal>,
- <literal role="stmt">REPLACE</literal> or
- <literal role="stmt">DELETE</literal> query.
+ <literal>INSERT</literal>, <literal>UPDATE</literal>,
+ <literal>REPLACE</literal> or <literal>DELETE</literal> query.
</para>
<para>
@@ -7265,18 +8428,18 @@
The markers are legal only in certain places in SQL
statements. For example, they are allowed in the
<literal>VALUES()</literal> list of an
- <literal role="stmt">INSERT</literal> statement (to
- specify column values for a row), or in a comparison
- with a column in a <literal>WHERE</literal> clause to
- specify a comparison value.
+ <literal>INSERT</literal> statement (to specify column
+ values for a row), or in a comparison with a column in
+ a <literal>WHERE</literal> clause to specify a
+ comparison value.
</para>
<para>
However, they are not allowed for identifiers (such as
table or column names), in the select list that names
the columns to be returned by a
- <literal role="stmt">SELECT</literal> statement, or to
- specify both operands of a binary operator such as the
+ <literal>SELECT</literal> statement, or to specify
+ both operands of a binary operator such as the
<literal>=</literal> equal sign. The latter
restriction is necessary because it would be
impossible to determine the parameter type. It's
@@ -7607,7 +8770,7 @@
<constant>FALSE</constant>
on failure. For <literal>SELECT, SHOW, DESCRIBE</literal> or
- <literal role="stmt">EXPLAIN</literal>
+ <literal>EXPLAIN</literal>
<link linkend="apis-php-mysqli.query"><function>mysqli_query</function></link>
will return a result object.
</para>
@@ -9476,14 +10639,13 @@
<para>
The callbacks task is to read input from the file specified in
the <literal>LOAD DATA LOCAL INFILE</literal> and to reformat it
- into the format understood by
- <literal role="stmt" condition="load-data">LOAD DATA
+ into the format understood by <literal>LOAD DATA
INFILE</literal>.
</para>
<para>
The returned data needs to match the format speficied in the
- <literal role="stmt">LOAD DATA</literal>
+ <literal>LOAD DATA</literal>
</para>
<para>
@@ -11341,31 +12503,24 @@
<fieldsynopsis>
<type>int</type><varname>affected_rows</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>errno</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>string</type><varname>error</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>field_count</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>insert_id</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>num_rows</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>param_count</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>string</type><varname>sqlstate</varname>
</fieldsynopsis>
@@ -11376,25 +12531,15 @@
<type>mysqli_stmt</type><parameter>stmt</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
- <type>int</type><methodname>mysqli_stmt_attr_get</methodname>
+ <type>int</type><methodname>mysqli_stmt::attr_get</methodname>
<methodparam>
- <type>mysqli_stmt</type><parameter>stmt</parameter>
- </methodparam>
-
- <methodparam>
<type>int</type><parameter>attr</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
- <type>bool</type><methodname>mysqli_stmt_attr_set</methodname>
+ <type>bool</type><methodname>mysqli_stmt::attr_set</methodname>
<methodparam>
- <type>mysqli_stmt</type><parameter>stmt</parameter>
- </methodparam>
-
- <methodparam>
<type>int</type><parameter>attr</parameter>
</methodparam>
@@ -11402,7 +12547,6 @@
<type>int</type><parameter>mode</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_stmt::bind_param</methodname>
<methodparam>
@@ -11417,7 +12561,6 @@
<type>mixed</type><parameter>...</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_stmt::bind_result</methodname>
<methodparam>
@@ -11428,100 +12571,84 @@
<type>mixed</type><parameter>...</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_stmt::close</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>void</type><methodname>mysqli_stmt::data_seek</methodname>
<methodparam>
<type>int</type><parameter>offset</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_stmt_errno</methodname>
<methodparam>
<type>mysqli_stmt</type><parameter>stmt</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli_stmt_error</methodname>
<methodparam>
<type>mysqli_stmt</type><parameter>stmt</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_stmt::execute</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_stmt::fetch</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_stmt_field_count</methodname>
<methodparam>
<type>mysqli_stmt</type><parameter>stmt</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>void</type><methodname>mysqli_stmt::free_result</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>object</type><methodname>mysqli_stmt::get_warnings</methodname>
<methodparam>
<type>mysqli_stmt</type><parameter>stmt</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>mixed</type><methodname>mysqli_stmt_insert_id</methodname>
<methodparam>
<type>mysqli_stmt</type><parameter>stmt</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_stmt_num_rows</methodname>
<methodparam>
<type>mysqli_stmt</type><parameter>stmt</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_stmt_param_count</methodname>
<methodparam>
<type>mysqli_stmt</type><parameter>stmt</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>mixed</type><methodname>mysqli_stmt::prepare</methodname>
<methodparam>
<type>string</type><parameter>query</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_stmt::reset</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>mysqli_result</type><methodname>mysqli_stmt::result_metadata</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_stmt::send_long_data</methodname>
<methodparam>
@@ -11532,14 +12659,12 @@
<type>string</type><parameter>data</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>string</type><methodname>mysqli_stmt_sqlstate</methodname>
<methodparam>
<type>mysqli_stmt</type><parameter>stmt</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_stmt::store_result</methodname>
<void/>
@@ -11603,9 +12728,8 @@
<para>
Returns the number of rows affected by
- <literal role="stmt">INSERT</literal>,
- <literal role="stmt">UPDATE</literal>, or
- <literal role="stmt">DELETE</literal> query.
+ <literal>INSERT</literal>, <literal>UPDATE</literal>, or
+ <literal>DELETE</literal> query.
</para>
<para>
@@ -11647,6 +12771,7 @@
updated for an UPDATE/DELETE statement, no rows matched the
WHERE clause in the query or that no query has yet been
executed. -1 indicates that the query has returned an error.
+ NULL indicates an invalid argument was supplied to the function.
</para>
<note>
@@ -11801,6 +12926,10 @@
<para>
<literal>mysqli_stmt_attr_get</literal>
</para>
+
+ <para>
+ Used to get the current value of a statement attribute
+ </para>
</listitem>
</itemizedlist>
@@ -11809,7 +12938,22 @@
<emphasis role="bold">Description</emphasis>
</para>
+ <para>
+ Object oriented style (method):
+ </para>
+
<methodsynopsis>
+ <type>int</type><methodname>mysqli_stmt::attr_get</methodname>
+ <methodparam>
+ <type>int</type><parameter>attr</parameter>
+ </methodparam>
+ </methodsynopsis>
+
+ <para>
+ Procedural style:
+ </para>
+
+ <methodsynopsis>
<type>int</type><methodname>mysqli_stmt_attr_get</methodname>
<methodparam>
<type>mysqli_stmt</type><parameter>stmt</parameter>
@@ -11820,12 +12964,58 @@
</methodparam>
</methodsynopsis>
- <warning>
- <simpara>This function is
-currently not documented; only its argument list is available.
-</simpara>
- </warning>
+ <para>
+ Gets the current value of a statement attribute.
+ </para>
+ <para>
+ <emphasis role="bold">Parameters</emphasis>
+ </para>
+
+ <para>
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ <parameter> stmt</parameter>
+ </term>
+
+ <listitem>
+ <para>
+ Procedural style only: A statement identifier returned
+ by <function>mysqli_stmt_init</function>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>attr</parameter>
+ </term>
+
+ <listitem>
+ <para>
+ The attribute that you want to get.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </para>
+
+ <para>
+ <emphasis role="bold">Return Values</emphasis>
+ </para>
+
+ <para>
+ Returns
+
+ <constant>FALSE</constant>
+
+ if the attribute is not found, otherwise returns the value of
+ the attribute.
+ </para>
+
</section>
<section id="apis-php-mysqli-stmt.attr-set">
@@ -11848,6 +13038,10 @@
<para>
<literal>mysqli_stmt_attr_set</literal>
</para>
+
+ <para>
+ Used to modify the behavior of a prepared statement
+ </para>
</listitem>
</itemizedlist>
@@ -11856,7 +13050,26 @@
<emphasis role="bold">Description</emphasis>
</para>
+ <para>
+ Object oriented style (method):
+ </para>
+
<methodsynopsis>
+ <type>bool</type><methodname>mysqli_stmt::attr_set</methodname>
+ <methodparam>
+ <type>int</type><parameter>attr</parameter>
+ </methodparam>
+
+ <methodparam>
+ <type>int</type><parameter>mode</parameter>
+ </methodparam>
+ </methodsynopsis>
+
+ <para>
+ Procedural style:
+ </para>
+
+ <methodsynopsis>
<type>bool</type><methodname>mysqli_stmt_attr_set</methodname>
<methodparam>
<type>mysqli_stmt</type><parameter>stmt</parameter>
@@ -11871,12 +13084,120 @@
</methodparam>
</methodsynopsis>
- <warning>
- <simpara>This function is
-currently not documented; only its argument list is available.
-</simpara>
- </warning>
+ <para>
+ Used to modify the behavior of a prepared statement. This
+ function may be called multiple times to set several attributes.
+ </para>
+ <para>
+ <emphasis role="bold">Parameters</emphasis>
+ </para>
+
+ <para>
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ <parameter> stmt</parameter>
+ </term>
+
+ <listitem>
+ <para>
+ Procedural style only: A statement identifier returned
+ by <function>mysqli_stmt_init</function>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>attr</parameter>
+ </term>
+
+ <listitem>
+ <para>
+ The attribute that you want to set. It can have one of
+ the following values:
+
+ <table>
+ <title>Attribute values</title>
+ <tgroup cols="2">
+ <colspec colwidth="50*"/>
+ <colspec colwidth="50*"/>
+ <thead>
+ <row>
+ <entry>Character</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH</entry>
+ <entry>If set to 1, causes <function>mysqli_stmt_store_result</function> to
+ update the metadata
+ <literal>MYSQL_FIELD->max_length</literal>
+ value.</entry>
+ </row>
+ <row>
+ <entry>MYSQLI_STMT_ATTR_CURSOR_TYPE</entry>
+ <entry>Type of cursor to open for statement when
+ <function>mysqli_stmt_execute</function> is
+ invoked. <parameter>mode</parameter> can be
+ <literal>MYSQLI_CURSOR_TYPE_NO_CURSOR</literal>
+ (the default) or
+ <literal>MYSQLI_CURSOR_TYPE_READ_ONLY</literal>.</entry>
+ </row>
+ <row>
+ <entry>MYSQLI_STMT_ATTR_PREFETCH_ROWS</entry>
+ <entry>Number of rows to fetch from server at a time when using a cursor.
+ <parameter>mode</parameter> can be in the
+ range from 1 to the maximum value of unsigned
+ long. The default is 1.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+
+ <para>
+ If you use the
+ <literal>MYSQLI_STMT_ATTR_CURSOR_TYPE</literal> option
+ with <literal>MYSQLI_CURSOR_TYPE_READ_ONLY</literal>, a
+ cursor is opened for the statement when you invoke
+ <function>mysqli_stmt_execute</function>. If there is
+ already an open cursor from a previous
+ <function>mysqli_stmt_execute</function> call, it closes
+ the cursor before opening a new one.
+ <function>mysqli_stmt_reset</function> also closes any
+ open cursor before preparing the statement for
+ re-execution.
+ <function>mysqli_stmt_free_result</function> closes any
+ open cursor.
+ </para>
+
+ <para>
+ If you open a cursor for a prepared statement,
+ <function>mysqli_stmt_store_result</function> is
+ unnecessary.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>mode</parameter>
+ </term>
+
+ <listitem>
+ <para>
+ The value to assign to the attribute.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </para>
+
</section>
<section id="apis-php-mysqli-stmt.bind-param">
@@ -12633,7 +13954,7 @@
</para>
<para>
- Seeks to an arbitray row in statement result set
+ Seeks to an arbitrary row in statement result set
</para>
</listitem>
@@ -12675,6 +13996,11 @@
</para>
<para>
+ <function>mysqli_stmt_store_result</function> must be called
+ prior to <function>mysqli_stmt_data_seek</function>.
+ </para>
+
+ <para>
<emphasis role="bold">Parameters</emphasis>
</para>
@@ -13340,10 +14666,9 @@
</para>
<para>
- If the statement is <literal role="stmt">UPDATE</literal>,
- <literal role="stmt">DELETE</literal>, or
- <literal role="stmt">INSERT</literal>, the total number of
- affected rows can be determined by using the
+ If the statement is <literal>UPDATE</literal>,
+ <literal>DELETE</literal>, or <literal>INSERT</literal>, the
+ total number of affected rows can be determined by using the
<function>mysqli_stmt_affected_rows</function> function.
Likewise, if the query yields a result set the
<function>mysqli_stmt_fetch</function> function is used.
@@ -13620,6 +14945,14 @@
</para>
</note>
+ <note>
+ <para>
+ Data are transferred unbuffered without calling
+ <function>mysqli_stmt_store_result</function> which can
+ decrease performance (but reduces memory cost).
+ </para>
+ </note>
+
<para>
<emphasis role="bold">Parameters</emphasis>
</para>
@@ -15824,15 +17157,12 @@
<fieldsynopsis>
<type>int</type><varname>current_field</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>field_count</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>array</type><varname>lengths</varname>
</fieldsynopsis>
-
<fieldsynopsis>
<type>int</type><varname>num_rows</varname>
</fieldsynopsis>
@@ -15843,43 +17173,42 @@
<type>mysqli_result</type><parameter>result</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_result::data_seek</methodname>
<methodparam>
<type>int</type><parameter>offset</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
+ <type>mixed</type><methodname>mysqli_result::fetch_all</methodname>
+ <methodparam>
+ <type>int</type><parameter>resulttype</parameter>
+ </methodparam>
+ </methodsynopsis>
+ <methodsynopsis>
<type>mixed</type><methodname>mysqli_result::fetch_array</methodname>
<methodparam>
<type>int</type><parameter>resulttype</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>array</type><methodname>mysqli_result::fetch_assoc</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>object</type><methodname>mysqli_result::fetch_field_direct</methodname>
<methodparam>
<type>int</type><parameter>fieldnr</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>object</type><methodname>mysqli_result::fetch_field</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>array</type><methodname>mysqli_result::fetch_fields</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>object</type><methodname>mysqli_result::fetch_object</methodname>
<methodparam>
@@ -15890,38 +17219,32 @@
<type>array</type><parameter>params</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>mixed</type><methodname>mysqli_result::fetch_row</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_num_fields</methodname>
<methodparam>
<type>mysqli_result</type><parameter>result</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_result::field_seek</methodname>
<methodparam>
<type>int</type><parameter>fieldnr</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>void</type><methodname>mysqli_result::free</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>array</type><methodname>mysqli_fetch_lengths</methodname>
<methodparam>
<type>mysqli_result</type><parameter>result</parameter>
</methodparam>
</methodsynopsis>
-
<methodsynopsis>
<type>int</type><methodname>mysqli_num_rows</methodname>
<methodparam>
@@ -16428,6 +17751,155 @@
</section>
+ <section id="apis-php-mysqli-result.fetch-all">
+
+ <title><literal>mysqli_result::fetch_all</literal>,
+ <literal>mysqli_fetch_all</literal></title>
+
+ <para>
+ <link linkend="php-api-copyright">Copyright (c) 1997-2008 the
+ PHP Documentation Group.</link>
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <literal>mysqli_result::fetch_all</literal>
+ </para>
+
+ <para>
+ <literal>mysqli_fetch_all</literal>
+ </para>
+
+ <para>
+ Fetches all result rows as an associative array, a numeric
+ array, or both
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ <emphasis role="bold">Description</emphasis>
+ </para>
+
+ <para>
+ Object oriented style (method):
+ </para>
+
+ <methodsynopsis>
+ <type>mixed</type><methodname>mysqli_result::fetch_all</methodname>
+ <methodparam>
+ <type>int</type><parameter>resulttype</parameter>
+ </methodparam>
+ </methodsynopsis>
+
+ <para>
+ Procedural style:
+ </para>
+
+ <methodsynopsis>
+ <type>mixed</type><methodname>mysqli_fetch_all</methodname>
+ <methodparam>
+ <type>mysqli_result</type><parameter>result</parameter>
+ </methodparam>
+
+ <methodparam>
+ <type>int</type><parameter>resulttype</parameter>
+ </methodparam>
+ </methodsynopsis>
+
+ <para>
+ Available only with <literal>mysqlnd</literal>.
+ </para>
+
+ <para>
+ <emphasis role="bold">Parameters</emphasis>
+ </para>
+
+ <para>
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ <parameter> result</parameter>
+ </term>
+
+ <listitem>
+ <para>
+ Procedural style only: A result set identifier returned
+ by
+ <link linkend="apis-php-mysqli.query"><function>mysqli_query</function></link>,
+ <function>mysqli_store_result</function> or
+ <function>mysqli_use_result</function>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <parameter>resulttype</parameter>
+ </term>
+
+ <listitem>
+ <para>
+ This optional parameter is a constant indicating what
+ type of array should be produced from the current row
+ data. The possible values for this parameter are the
+ constants
+
+ <constant>MYSQLI_ASSOC</constant>
+
+ ,
+
+ <constant>MYSQLI_NUM</constant>
+
+ , or
+
+ <constant>MYSQLI_BOTH</constant>
+
+ . Defaults to
+
+ <constant>MYSQLI_NUM</constant>
+
+ .
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </para>
+
+ <para>
+ <emphasis role="bold">Return Values</emphasis>
+ </para>
+
+ <para>
+ Returns an array of associative or numeric arrays holding result
+ rows.
+ </para>
+
+ <para>
+ <emphasis role="bold">See Also</emphasis>
+ </para>
+
+ <para>
+ <simplelist>
+
+ <member><function>mysqli_fetch_array</function>
+
+ </member>
+
+ <member><link linkend="apis-php-mysqli.query"><function>mysqli_query</function></link>
+
+ </member>
+
+ </simplelist>
+ </para>
+
+ </section>
+
<section id="apis-php-mysqli-result.fetch-array">
<title><literal>mysqli_result::fetch_array</literal>,
@@ -17971,7 +19443,11 @@
</term>
<listitem>
- <para></para>
+ <para>
+ The name of the class to instantiate, set the properties
+ of and return. If not specified, a
+ <classname>stdClass</classname> object is returned.
+ </para>
</listitem>
</varlistentry>
@@ -17981,7 +19457,11 @@
</term>
<listitem>
- <para></para>
+ <para>
+ An optional <type>array</type> of parameters to pass to
+ the constructor for <parameter>class_name</parameter>
+ objects.
+ </para>
</listitem>
</varlistentry>
@@ -19455,7 +20935,6 @@
<type>void</type><methodname>mysqli_driver::embedded_server_end</methodname>
<void/>
</methodsynopsis>
-
<methodsynopsis>
<type>bool</type><methodname>mysqli_driver::embedded_server_start</methodname>
<methodparam>
@@ -20735,14 +22214,12 @@
<constant>MYSQLI_RPL_ADMIN</constant>
- depending on a query type.
- <literal role="stmt">INSERT</literal>,
- <literal role="stmt">UPDATE</literal> and similar are
- <emphasis>master</emphasis> queries,
- <literal role="stmt">SELECT</literal> is
- <emphasis>slave</emphasis>, and
- <literal role="stmt">FLUSH</literal>, <literal>REPAIR</literal>
- and similar are <emphasis>admin</emphasis>.
+ depending on a query type. <literal>INSERT</literal>,
+ <literal>UPDATE</literal> and similar are
+ <emphasis>master</emphasis> queries, <literal>SELECT</literal>
+ is <emphasis>slave</emphasis>, and <literal>FLUSH</literal>,
+ <literal>REPAIR</literal> and similar are
+ <emphasis>admin</emphasis>.
</para>
<warning>
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r12368 - trunk/refman-common | martin.brown | 10 Nov |