[DOC-CVS] [doc-en] master: mysqlnd: fix XML to remove useless wrapping para tags via script

[email protected] (Gina Peter Banyard)
Newsgroups php.doc.cvs
Message-ID <[email protected]>
Author: Gina Peter Banyard (Girgias)
Date: 2026-01-19T03:25:42Z

Commit: https://github.com/php/doc-en/commit/fa98ad518d2b960a56e44ad580907ed208ab633c
Raw diff: https://github.com/php/doc-en/commit/fa98ad518d2b960a56e44ad580907ed208ab633c.diff

mysqlnd: fix XML to remove useless wrapping para tags via script

Changed paths:
  M  reference/mysqlnd/config.xml
  M  reference/mysqlnd/install.xml


Diff:

diff --git a/reference/mysqlnd/config.xml b/reference/mysqlnd/config.xml
index 3e62f75a086f..cf219b665fab 100644
--- a/reference/mysqlnd/config.xml
+++ b/reference/mysqlnd/config.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<chapter xml:id="mysqlnd.config" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="mysqlnd.config">
 
   &reftitle.runtime;
   &extension.runtime;
@@ -22,31 +22,31 @@
       <entry><link linkend="ini.mysqlnd.collect-statistics">mysqlnd.collect_statistics</link></entry>
       <entry>"1"</entry>
       <entry><constant>INI_SYSTEM</constant></entry>
-      <entry></entry>
+      <entry/>
      </row>
      <row>
       <entry><link linkend="ini.mysqlnd.collect-memory-statistics">mysqlnd.collect_memory_statistics</link></entry>
       <entry>"0"</entry>
       <entry><constant>INI_SYSTEM</constant></entry>
-      <entry></entry>
+      <entry/>
      </row>
      <row>
       <entry><link linkend="ini.mysqlnd.debug">mysqlnd.debug</link></entry>
       <entry>""</entry>
       <entry><constant>INI_SYSTEM</constant></entry>
-      <entry></entry>
+      <entry/>
      </row>
      <row>
       <entry><link linkend="ini.mysqlnd.log-mask">mysqlnd.log_mask</link></entry>
       <entry>0</entry>
       <entry><constant>INI_ALL</constant></entry>
-      <entry></entry>
+      <entry/>
      </row>
      <row>
       <entry><link linkend="ini.mysqlnd.mempool-default-size">mysqlnd.mempool_default_size</link></entry>
       <entry>16000</entry>
       <entry><constant>INI_ALL</constant></entry>
-      <entry></entry>
+      <entry/>
      </row>
      <row>
       <entry><link linkend="ini.mysqlnd.net-read-timeout">mysqlnd.net_read_timeout</link></entry>
@@ -61,25 +61,25 @@
       <entry><link linkend="ini.mysqlnd.net-cmd-buffer-size">mysqlnd.net_cmd_buffer_size</link></entry>
       <entry>"4096"</entry>
       <entry><constant>INI_SYSTEM</constant></entry>
-      <entry></entry>
+      <entry/>
      </row>
      <row>
       <entry><link linkend="ini.mysqlnd.net-read-buffer-size">mysqlnd.net_read_buffer_size</link></entry>
       <entry>"32768"</entry>
       <entry><constant>INI_SYSTEM</constant></entry>
-      <entry></entry>
+      <entry/>
      </row>
      <row>
       <entry><link linkend="ini.mysqlnd.sha256-server-public-key">mysqlnd.sha256_server_public_key</link></entry>
       <entry>""</entry>
       <entry><constant>INI_PERDIR</constant></entry>
-      <entry></entry>
+      <entry/>
      </row>
       <row>
        <entry><link linkend="ini.mysqlnd.trace-alloc">mysqlnd.trace_alloc</link></entry>
        <entry>""</entry>
        <entry><constant>INI_SYSTEM</constant></entry>
-       <entry></entry>
+       <entry/>
       </row>
      <row>
       <entry><link linkend="ini.mysqlnd.fetch_data_copy">mysqlnd.fetch_data_copy</link></entry>
@@ -95,355 +95,353 @@
 
   &ini.descriptions.title;
 
-  <para>
   <variablelist>
-   <varlistentry xml:id="ini.mysqlnd.collect-statistics">
-    <term>
-     <parameter>mysqlnd.collect_statistics</parameter>
-     <type>bool</type>
-    </term>
-    <listitem>
-     <para>
-      Enables the collection of various client statistics which can be
-      accessed through <function>mysqli_get_client_stats</function>,
-      <function>mysqli_get_connection_stats</function>,
-      and are shown in
-      <literal>mysqlnd</literal> section of the output of the
-      <function>phpinfo</function> function as well.
-     </para>
-     <para>
-      This configuration setting enables all
-      <link linkend="mysqlnd.stats">MySQL Native Driver
-      statistics</link> except those relating to memory management.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="ini.mysqlnd.collect-memory-statistics">
-    <term>
-     <parameter>mysqlnd.collect_memory_statistics</parameter>
-     <type>bool</type>
-    </term>
-    <listitem>
-     <para>
-      Enable the collection of various memory statistics which can be
-      accessed through <function>mysqli_get_client_stats</function>,
-      <function>mysqli_get_connection_stats</function>,
-      and are shown in
-      <literal>mysqlnd</literal> section of the output of the
-      <function>phpinfo</function> function as well.
-     </para>
-     <para>
-      This configuration setting enables the memory management
-      statistics within the overall set of
-      <link linkend="mysqlnd.stats">MySQL Native Driver
-      statistics</link>.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="ini.mysqlnd.debug">
-    <term>
-     <parameter>mysqlnd.debug</parameter> <type>string</type>
-    </term>
-    <listitem>
-     <para>
-      Records communication from all extensions using
-      <literal>mysqlnd</literal> to the specified log file.
-     </para>
-     <para>
-      The format of the directive is <literal>mysqlnd.debug =
-      "option1[,parameter_option1][:option2[,parameter_option2]]"</literal>.
-     </para>
-     <para>
-      The options for the format string are as follows:
-     </para>
-     <itemizedlist>
-      <listitem>
-       <para>
-        A[,file] - Appends trace output to specified file. Also ensures
-        that data is written after each write. This is done by closing
-        and reopening the trace file (this is slow). It helps ensure a
-        complete log file should the application crash.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        a[,file] - Appends trace output to the specified file.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        d - Enables output from DBUG_&lt;N&gt; macros for the current
-        state. May be followed by a list of keywords which selects
-        output only for the DBUG macros with that keyword. An empty list
-        of keywords implies output for all macros.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        f[,functions] - Limits debugger actions to the specified list of
-        functions. An empty list of functions implies that all functions
-        are selected.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        F - Marks each debugger output line with the name of the source
-        file containing the macro causing the output.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        i - Marks each debugger output line with the PID of the current
-        process.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        L - Marks each debugger output line with the name of the source
-        file line number of the macro causing the output.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        n - Marks each debugger output line with the current function
-        nesting depth
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        o[,file] - Similar to a[,file] but overwrites old file, and does
-        not append.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        O[,file] - Similar to A[,file] but overwrites old file, and does
-        not append.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        t[,N] - Enables function control flow tracing. The maximum
-        nesting depth is specified by N, and defaults to 200.
-       </para>
-      </listitem>
+  <varlistentry xml:id="ini.mysqlnd.collect-statistics">
+   <term>
+    <parameter>mysqlnd.collect_statistics</parameter>
+    <type>bool</type>
+   </term>
+   <listitem>
+    <para>
+     Enables the collection of various client statistics which can be
+     accessed through <function>mysqli_get_client_stats</function>,
+     <function>mysqli_get_connection_stats</function>,
+     and are shown in
+     <literal>mysqlnd</literal> section of the output of the
+     <function>phpinfo</function> function as well.
+    </para>
+    <para>
+     This configuration setting enables all
+     <link linkend="mysqlnd.stats">MySQL Native Driver
+     statistics</link> except those relating to memory management.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry xml:id="ini.mysqlnd.collect-memory-statistics">
+   <term>
+    <parameter>mysqlnd.collect_memory_statistics</parameter>
+    <type>bool</type>
+   </term>
+   <listitem>
+    <para>
+     Enable the collection of various memory statistics which can be
+     accessed through <function>mysqli_get_client_stats</function>,
+     <function>mysqli_get_connection_stats</function>,
+     and are shown in
+     <literal>mysqlnd</literal> section of the output of the
+     <function>phpinfo</function> function as well.
+    </para>
+    <para>
+     This configuration setting enables the memory management
+     statistics within the overall set of
+     <link linkend="mysqlnd.stats">MySQL Native Driver
+     statistics</link>.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry xml:id="ini.mysqlnd.debug">
+   <term>
+    <parameter>mysqlnd.debug</parameter> <type>string</type>
+   </term>
+   <listitem>
+    <para>
+     Records communication from all extensions using
+     <literal>mysqlnd</literal> to the specified log file.
+    </para>
+    <para>
+     The format of the directive is <literal>mysqlnd.debug =
+     "option1[,parameter_option1][:option2[,parameter_option2]]"</literal>.
+    </para>
+    <para>
+     The options for the format string are as follows:
+    </para>
+    <itemizedlist>
+     <listitem>
+      <para>
+       A[,file] - Appends trace output to specified file. Also ensures
+       that data is written after each write. This is done by closing
+       and reopening the trace file (this is slow). It helps ensure a
+       complete log file should the application crash.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       a[,file] - Appends trace output to the specified file.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       d - Enables output from DBUG_&lt;N&gt; macros for the current
+       state. May be followed by a list of keywords which selects
+       output only for the DBUG macros with that keyword. An empty list
+       of keywords implies output for all macros.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       f[,functions] - Limits debugger actions to the specified list of
+       functions. An empty list of functions implies that all functions
+       are selected.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       F - Marks each debugger output line with the name of the source
+       file containing the macro causing the output.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       i - Marks each debugger output line with the PID of the current
+       process.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       L - Marks each debugger output line with the name of the source
+       file line number of the macro causing the output.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       n - Marks each debugger output line with the current function
+       nesting depth
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       o[,file] - Similar to a[,file] but overwrites old file, and does
+       not append.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       O[,file] - Similar to A[,file] but overwrites old file, and does
+       not append.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       t[,N] - Enables function control flow tracing. The maximum
+       nesting depth is specified by N, and defaults to 200.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       x - This option activates profiling.
+      </para>
+     </listitem>
       <listitem>
-       <para>
-        x - This option activates profiling.
-       </para>
-      </listitem>
-       <listitem>
-       <para>
-        m - Trace memory allocation and deallocation related calls.
-       </para>
-      </listitem>
-     </itemizedlist>
-     <para>
-      Example:
-     </para>
+      <para>
+       m - Trace memory allocation and deallocation related calls.
+      </para>
+     </listitem>
+    </itemizedlist>
+    <para>
+     Example:
+    </para>
 <programlisting>
 <![CDATA[
 d:t:x:O,/tmp/mysqlnd.trace
 ]]>
 </programlisting>
-     <note>
-      <para>
-       This feature is only available with a debug build of PHP.
-      </para>
-     </note>
-     <para></para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="ini.mysqlnd.log-mask">
-    <term>
-     <parameter>mysqlnd.log_mask</parameter>
-     <type>int</type>
-    </term>
-    <listitem>
-     <para>
-      Defines which queries will be logged. The default 0, which disables logging.
-      Define using an integer, and not with PHP constants. For example, a value of
-      48 (16 + 32) will log slow queries which either use 'no good index'
-      (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) or no index at all (SERVER_QUERY_NO_INDEX_USED = 32).
-      A value of 2043 (1 + 2 + 8 + ... + 1024) will log all slow query types.
-     </para>
-     <para>
-      The types are as follows: SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2,
-      SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32,
-      SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256,
-      SERVER_STATUS_NO_BACKSLASH_ESCAPES=512, and SERVER_QUERY_WAS_SLOW=1024.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="ini.mysqlnd.mempool-default-size">
-    <term>
-     <parameter>mysqlnd.mempool_default_size</parameter>
-     <type>int</type>
-    </term>
-    <listitem>
-     <para>
-      Default size of the mysqlnd memory pool, which is used by result sets.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="ini.mysqlnd.net-read-timeout">
-    <term>
-     <parameter>mysqlnd.net_read_timeout</parameter>
-     <type>int</type>
-    </term>
-    <listitem>
-     <para>
-      <literal>mysqlnd</literal> and the MySQL Client Library,
-      <literal>libmysqlclient</literal> use different networking APIs.
-      <literal>mysqlnd</literal> uses PHP streams, whereas
-      <literal>libmysqlclient</literal> uses its own wrapper around the
-      operating level network calls. PHP, by default, sets a read
-      timeout of 60s for streams. This is set via
-      <filename>php.ini</filename>,
-      <literal>default_socket_timeout</literal>. This default applies to
-      all streams that set no other timeout value.
-      <literal>mysqlnd</literal> does not set any other value and
-      therefore connections of long running queries can be disconnected
-      after <literal>default_socket_timeout</literal> seconds resulting
-      in an error message <quote>2006 - MySQL Server has gone
-      away</quote>. The MySQL Client Library sets a default timeout of
-      24 * 3600 seconds (1 day) and waits for other timeouts to
-      occur, such as TCP/IP timeouts. <literal>mysqlnd</literal> now
-      uses the same very long timeout. The value is configurable through
-      a new <filename>php.ini</filename> setting:
-      <literal>mysqlnd.net_read_timeout</literal>.
-      <literal>mysqlnd.net_read_timeout</literal> gets used by any
-      extension (<literal>ext/mysql</literal>,
-      <literal>ext/mysqli</literal>, <literal>PDO_MySQL</literal>) that
-      uses <literal>mysqlnd</literal>. <literal>mysqlnd</literal> tells
-      PHP Streams to use <literal>mysqlnd.net_read_timeout</literal>.
-      Please note that there may be subtle differences between
-      <literal>MYSQL_OPT_READ_TIMEOUT</literal> from the MySQL Client
-      Library and PHP Streams, for example
-      <literal>MYSQL_OPT_READ_TIMEOUT</literal> is documented to work
-      only for TCP/IP connections and, prior to MySQL 5.1.2, only for
-      Windows. PHP streams may not have this limitation. Please check
-      the streams documentation, if in doubt.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="ini.mysqlnd.net-cmd-buffer-size">
-    <term>
-     <parameter>mysqlnd.net_cmd_buffer_size</parameter>
-     <type>int</type>
-    </term>
-    <listitem>
-     <para>
-      <literal>mysqlnd</literal> allocates an internal command/network
-      buffer of <literal>mysqlnd.net_cmd_buffer_size</literal> (in
-      <filename>php.ini</filename>) bytes for every connection. If a
-      MySQL Client Server protocol command, for example,
-      <literal>COM_QUERY</literal> (<quote>normal</quote> query), does
-      not fit into the buffer, <literal>mysqlnd</literal> will grow the
-      buffer to the size required for sending the command. Whenever the
-      buffer gets extended for one connection,
-      <literal>command_buffer_too_small</literal> will be incremented by
-      one.
-     </para>
-     <para>
-      If <literal>mysqlnd</literal> has to grow the buffer beyond its
-      initial size of <literal>mysqlnd.net_cmd_buffer_size</literal>
-      bytes for almost every connection, you should consider increasing
-      the default size to avoid re-allocations.
-     </para>
-     <para>
-      The default buffer size is 4096 bytes, which is the smallest value possible.
-     </para>
-     <para>
-      The value can also be set using <literal>mysqli_options(link,
-      MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size)</literal>.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="ini.mysqlnd.net-read-buffer-size">
-    <term>
-     <parameter>mysqlnd.net_read_buffer_size</parameter>
-     <type>int</type>
-    </term>
-    <listitem>
-     <para>
-      Maximum read chunk size in bytes when reading the body of a MySQL
-      command packet. The MySQL client server protocol encapsulates all
-      its commands in packets. The packets consist of a small header and
-      a body with the actual payload. The size of the body is encoded in
-      the header. <literal>mysqlnd</literal> reads the body in chunks of
-      <literal>MIN(header.size, mysqlnd.net_read_buffer_size)</literal>
-      bytes. If a packet body is larger than
-      <literal>mysqlnd.net_read_buffer_size</literal> bytes,
-      <literal>mysqlnd</literal> has to call <literal>read()</literal>
-      multiple times.
-     </para>
-     <para>
-      The value can also be set using <literal>mysqli_options(link,
-      MYSQLI_OPT_NET_READ_BUFFER_SIZE, size)</literal>.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="ini.mysqlnd.sha256-server-public-key">
-    <term>
-     <parameter>mysqlnd.sha256_server_public_key</parameter>
-     <type>string</type>
-    </term>
-    <listitem>
-     <para>
-      SHA-256 Authentication Plugin related. File with the MySQL server
-      public RSA key.
-     </para>
-     <para>
-      Clients can either omit setting a public RSA key, specify the key through
-      this PHP configuration setting or set the key at runtime using
-      <function>mysqli_options</function>. If not public RSA key file is
-      given by the client, then the key will be exchanged as part of the
-      standard SHA-256 Authentication Plugin authentication procedure.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="ini.mysqlnd.trace-alloc">
-    <term>
-     <parameter>mysqlnd.trace_alloc</parameter>
-     <type>string</type>
-    </term>
-    <listitem>
-     <para>
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry xml:id="ini.mysqlnd.fetch_data_copy">
-    <term>
-     <parameter>mysqlnd.fetch_data_copy</parameter>
-     <type>int</type>
-    </term>
-    <listitem>
-     <para>
-      Enforce copying result sets from the internal
-      result set buffers into PHP variables instead of using the default
-      reference and copy-on-write logic. Please, see the
-      <link linkend="mysqlnd.memory">memory management implementation notes</link>
-      for further details.
-     </para>
-     <para>
-      Copying result sets instead of having PHP variables reference
-      them allows releasing the memory occupied for the PHP variables earlier.
-      Depending on the user API code, the actual database quries and the
-      size of their result sets this may reduce the memory footprint
-      of mysqlnd.
-     </para>
+    <note>
      <para>
-       Do not set if using PDO_MySQL. PDO_MySQL has not yet been updated to support
-       the new fetch mode.
+      This feature is only available with a debug build of PHP.
      </para>
-    <note>
-     <simpara>Removed as of PHP 8.1.0</simpara>
     </note>
-    </listitem>
-   </varlistentry>
-  </variablelist>
- </para>
+    <para/>
+   </listitem>
+  </varlistentry>
+  <varlistentry xml:id="ini.mysqlnd.log-mask">
+   <term>
+    <parameter>mysqlnd.log_mask</parameter>
+    <type>int</type>
+   </term>
+   <listitem>
+    <para>
+     Defines which queries will be logged. The default 0, which disables logging.
+     Define using an integer, and not with PHP constants. For example, a value of
+     48 (16 + 32) will log slow queries which either use 'no good index'
+     (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) or no index at all (SERVER_QUERY_NO_INDEX_USED = 32).
+     A value of 2043 (1 + 2 + 8 + ... + 1024) will log all slow query types.
+    </para>
+    <para>
+     The types are as follows: SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2,
+     SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32,
+     SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256,
+     SERVER_STATUS_NO_BACKSLASH_ESCAPES=512, and SERVER_QUERY_WAS_SLOW=1024.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry xml:id="ini.mysqlnd.mempool-default-size">
+   <term>
+    <parameter>mysqlnd.mempool_default_size</parameter>
+    <type>int</type>
+   </term>
+   <listitem>
+    <para>
+     Default size of the mysqlnd memory pool, which is used by result sets.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry xml:id="ini.mysqlnd.net-read-timeout">
+   <term>
+    <parameter>mysqlnd.net_read_timeout</parameter>
+    <type>int</type>
+   </term>
+   <listitem>
+    <para>
+     <literal>mysqlnd</literal> and the MySQL Client Library,
+     <literal>libmysqlclient</literal> use different networking APIs.
+     <literal>mysqlnd</literal> uses PHP streams, whereas
+     <literal>libmysqlclient</literal> uses its own wrapper around the
+     operating level network calls. PHP, by default, sets a read
+     timeout of 60s for streams. This is set via
+     <filename>php.ini</filename>,
+     <literal>default_socket_timeout</literal>. This default applies to
+     all streams that set no other timeout value.
+     <literal>mysqlnd</literal> does not set any other value and
+     therefore connections of long running queries can be disconnected
+     after <literal>default_socket_timeout</literal> seconds resulting
+     in an error message <quote>2006 - MySQL Server has gone
+     away</quote>. The MySQL Client Library sets a default timeout of
+     24 * 3600 seconds (1 day) and waits for other timeouts to
+     occur, such as TCP/IP timeouts. <literal>mysqlnd</literal> now
+     uses the same very long timeout. The value is configurable through
+     a new <filename>php.ini</filename> setting:
+     <literal>mysqlnd.net_read_timeout</literal>.
+     <literal>mysqlnd.net_read_timeout</literal> gets used by any
+     extension (<literal>ext/mysql</literal>,
+     <literal>ext/mysqli</literal>, <literal>PDO_MySQL</literal>) that
+     uses <literal>mysqlnd</literal>. <literal>mysqlnd</literal> tells
+     PHP Streams to use <literal>mysqlnd.net_read_timeout</literal>.
+     Please note that there may be subtle differences between
+     <literal>MYSQL_OPT_READ_TIMEOUT</literal> from the MySQL Client
+     Library and PHP Streams, for example
+     <literal>MYSQL_OPT_READ_TIMEOUT</literal> is documented to work
+     only for TCP/IP connections and, prior to MySQL 5.1.2, only for
+     Windows. PHP streams may not have this limitation. Please check
+     the streams documentation, if in doubt.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry xml:id="ini.mysqlnd.net-cmd-buffer-size">
+   <term>
+    <parameter>mysqlnd.net_cmd_buffer_size</parameter>
+    <type>int</type>
+   </term>
+   <listitem>
+    <para>
+     <literal>mysqlnd</literal> allocates an internal command/network
+     buffer of <literal>mysqlnd.net_cmd_buffer_size</literal> (in
+     <filename>php.ini</filename>) bytes for every connection. If a
+     MySQL Client Server protocol command, for example,
+     <literal>COM_QUERY</literal> (<quote>normal</quote> query), does
+     not fit into the buffer, <literal>mysqlnd</literal> will grow the
+     buffer to the size required for sending the command. Whenever the
+     buffer gets extended for one connection,
+     <literal>command_buffer_too_small</literal> will be incremented by
+     one.
+    </para>
+    <para>
+     If <literal>mysqlnd</literal> has to grow the buffer beyond its
+     initial size of <literal>mysqlnd.net_cmd_buffer_size</literal>
+     bytes for almost every connection, you should consider increasing
+     the default size to avoid re-allocations.
+    </para>
+    <para>
+     The default buffer size is 4096 bytes, which is the smallest value possible.
+    </para>
+    <para>
+     The value can also be set using <literal>mysqli_options(link,
+     MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size)</literal>.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry xml:id="ini.mysqlnd.net-read-buffer-size">
+   <term>
+    <parameter>mysqlnd.net_read_buffer_size</parameter>
+    <type>int</type>
+   </term>
+   <listitem>
+    <para>
+     Maximum read chunk size in bytes when reading the body of a MySQL
+     command packet. The MySQL client server protocol encapsulates all
+     its commands in packets. The packets consist of a small header and
+     a body with the actual payload. The size of the body is encoded in
+     the header. <literal>mysqlnd</literal> reads the body in chunks of
+     <literal>MIN(header.size, mysqlnd.net_read_buffer_size)</literal>
+     bytes. If a packet body is larger than
+     <literal>mysqlnd.net_read_buffer_size</literal> bytes,
+     <literal>mysqlnd</literal> has to call <literal>read()</literal>
+     multiple times.
+    </para>
+    <para>
+     The value can also be set using <literal>mysqli_options(link,
+     MYSQLI_OPT_NET_READ_BUFFER_SIZE, size)</literal>.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry xml:id="ini.mysqlnd.sha256-server-public-key">
+   <term>
+    <parameter>mysqlnd.sha256_server_public_key</parameter>
+    <type>string</type>
+   </term>
+   <listitem>
+    <para>
+     SHA-256 Authentication Plugin related. File with the MySQL server
+     public RSA key.
+    </para>
+    <para>
+     Clients can either omit setting a public RSA key, specify the key through
+     this PHP configuration setting or set the key at runtime using
+     <function>mysqli_options</function>. If not public RSA key file is
+     given by the client, then the key will be exchanged as part of the
+     standard SHA-256 Authentication Plugin authentication procedure.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry xml:id="ini.mysqlnd.trace-alloc">
+   <term>
+    <parameter>mysqlnd.trace_alloc</parameter>
+    <type>string</type>
+   </term>
+   <listitem>
+    <para>
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry xml:id="ini.mysqlnd.fetch_data_copy">
+   <term>
+    <parameter>mysqlnd.fetch_data_copy</parameter>
+    <type>int</type>
+   </term>
+   <listitem>
+    <para>
+     Enforce copying result sets from the internal
+     result set buffers into PHP variables instead of using the default
+     reference and copy-on-write logic. Please, see the
+     <link linkend="mysqlnd.memory">memory management implementation notes</link>
+     for further details.
+    </para>
+    <para>
+     Copying result sets instead of having PHP variables reference
+     them allows releasing the memory occupied for the PHP variables earlier.
+     Depending on the user API code, the actual database quries and the
+     size of their result sets this may reduce the memory footprint
+     of mysqlnd.
+    </para>
+    <para>
+      Do not set if using PDO_MySQL. PDO_MySQL has not yet been updated to support
+      the new fetch mode.
+    </para>
+   <note>
+    <simpara>Removed as of PHP 8.1.0</simpara>
+   </note>
+   </listitem>
+  </varlistentry>
+ </variablelist>
 </chapter>
 <!-- Keep this comment at the end of the file
 Local variables:
diff --git a/reference/mysqlnd/install.xml b/reference/mysqlnd/install.xml
index b8d1d1cd000c..c6c03c5bf6f5 100644
--- a/reference/mysqlnd/install.xml
+++ b/reference/mysqlnd/install.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<chapter xml:id="mysqlnd.install" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="mysqlnd.install">
 
   <title>Installation</title>
 
@@ -72,28 +72,26 @@
 
  <simplesect role="changelog">
   &reftitle.changelog;
-  <para>
-   <informaltable>
-    <tgroup cols="2">
-     <thead>
-      <row>
-       <entry>&Version;</entry>
-       <entry>&Description;</entry>
-      </row>
-     </thead>
-     <tbody>
-      <row>
-       <entry>8.4.0</entry>
-       <entry>
-        The <option role="configure">--with-mysqlnd-ssl</option> Autotools
-        configure option was added to enable the extended SSL support explicitly
-        when building without the <literal>openssl</literal> extension.
-       </entry>
-      </row>
-     </tbody>
-    </tgroup>
-   </informaltable>
-  </para>
+  <informaltable>
+   <tgroup cols="2">
+    <thead>
+     <row>
+      <entry>&Version;</entry>
+      <entry>&Description;</entry>
+     </row>
+    </thead>
+    <tbody>
+     <row>
+      <entry>8.4.0</entry>
+      <entry>
+       The <option role="configure">--with-mysqlnd-ssl</option> Autotools
+       configure option was added to enable the extended SSL support explicitly
+       when building without the <literal>openssl</literal> extension.
+      </entry>
+     </row>
+    </tbody>
+   </tgroup>
+  </informaltable>
  </simplesect>
 
 </chapter>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.