List:Commits« Previous MessageNext Message »
From:martin.brown Date:November 10 2008 12:29pm
Subject:svn commit - mysqldoc@docsrva: r12368 - trunk/refman-common
View as plain text  
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&#039;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&#039;s MySQL Extension
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          PHP&#039;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&#039;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&#039;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&#039;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&#039;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&#039;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&#039;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&#039;s mysqli Extension</entry>
+            <entry>PDO (Using PDO MySQL Driver and MySQL Native Driver)</entry>
+            <entry>PHP&#039;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;character_set_name</methodname>,<link linkend="mysqli.character-set-name">
+              mysqli-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;real_escape_string</methodname>,
+              <methodname>mysqli-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;more_results()</entry>
+            <entry>mysqli_stmt_more_results()</entry>
+            <entry>N/A</entry>
+            <entry>NOT DOCUMENTED [mysqlnd only]</entry>
+          </row>
+          <row>
+            <entry>$mysqli_stmt-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;fetch_all()</entry>
+            <entry>mysqli_fetch_all()</entry>
+            <entry>N/A</entry>
+            <entry>NOT DOCUMENTED [mysqlnd only]</entry>
+          </row>
+          <row>
+            <entry><methodname>mysqli_result-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;free</methodname>,
+              <link linkend="mysqli-result.free">mysqli_result-&gt;close</link>,
+              <link linkend="mysqli-result.free">mysqli_result-&gt;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-&gt;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-&gt;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&#039;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-&gt;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-commonmartin.brown10 Nov