# php_manual

id: mb_parse_str
type: function
doc:
<comment>Description:</comment>
  Parse GET/POST/COOKIE data and set global variable
  
  Parses GET/POST/COOKIE data and sets global variables. Since PHP does not provide raw POST/COOKIE
  data, it can only be used for GET data for now. It parses URL encoded data, detects encoding,
  converts coding to internal encoding and set values to the <strong>$result</strong> <info>array</info> or global variables.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The URL encoded data.
  <info>array</info>   <strong>$result</strong>  An <info>array</info> containing decoded and character encoded converted values.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mb_detect_order()</strong>
   * <strong>mb_internal_encoding()</strong>


id: mb_preferred_mime_name
type: function
doc:
<comment>Description:</comment>
  Get MIME charset string
  
  Get a MIME charset <info>string</info> for a specific encoding.

<comment>Param:</comment>
  <info>string</info>  <strong>$encoding</strong>  The encoding being checked.

<comment>Return:</comment>
  <info>string|false</info>  The MIME <return>charset</return> <info>string</info> for character encoding <strong>$encoding</strong>, or <info>false</info> if no charset is
                preferred for the given <strong>$encoding</strong>.


id: mb_regex_encoding
type: function
doc:
<comment>Description:</comment>
  Set/Get character encoding for multibyte regex
  
  Set/Get character encoding for a multibyte regex.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>string|bool</info>  If <strong>$encoding</strong> is set, then  Returns <info>true</info> on success or <info>false</info> on failure.  In this
               case, the internal character encoding is NOT changed. If <strong>$encoding</strong> is omitted, then
               the current character encoding name for a multibyte regex is returned.

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_ereg()</strong>


id: mb_regex_set_options
type: function
doc:
<comment>Description:</comment>
  Set/Get the default options for mbregex functions
  
  Sets the default options described by <strong>$options</strong>  for multibyte regex functions.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$options</strong>  The options to set. This is a string where each  character is an option. To
                         set a mode, the mode  character must be the last one set, however there
                         can only be set one mode but multiple options.
                         
                         The <return>"e"</return> option has no effect when set through <strong>mb_regex_set_options()</strong>. Use
                         it with <strong>mb_ereg_replace()</strong> or <strong>mb_eregi_replace()</strong>.

<comment>Return:</comment>
  <info>string</info>  The previous options. If <strong>$options</strong> is omitted or <info>null</info>,  it returns the <info>string</info> that
          describes the current options.

<comment>See Also:</comment>
   * <strong>mb_split()</strong>
   * <strong>mb_ereg()</strong>
   * <strong>mb_eregi()</strong>


id: mb_scrub
type: function
doc:
<comment>Description:</comment>
  Replace ill-formed byte sequences with the substitute character
  
  Perform a character set conversion from the specified encoding, or the default encoding if no
  encoding was specified, to the same encoding. This has the effect of replacing any invalid byte
  sequences with the substitute character.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The input string.
  <info>string|null</info>  <strong>$encoding</strong>  The encoding used to interpret <strong>$string</strong>. If it is omitted or <info>null</info>, the
                          mbstring.internal_encoding setting will be used if set, otherwise the
                          default_charset setting will be used.

<comment>Return:</comment>
  <info>string</info>  The <info>string</info> result with invalid byte sequences replaced.


id: mb_send_mail
type: function
doc:
<comment>Description:</comment>
  Send encoded mail
  
  Sends email. Headers and messages are converted and encoded according to the <strong>mb_language()</strong>
  setting. It's a wrapper function for <strong>mail()</strong>, so see also <strong>mail()</strong> for details.

<comment>Param:</comment>
  <info>string</info>        <strong>$to</strong>                  The mail addresses being sent to. Multiple recipients may be
                                     specified by putting a comma between each address in <strong>$to</strong>.  This
                                     parameter is not automatically encoded.
  <info>string</info>        <strong>$subject</strong>             The subject of the mail.
  <info>string</info>        <strong>$message</strong>             The message of the mail.
  <info>array|string</info>  <strong>$additional_headers</strong>  <info>String</info> or <info>array</info> to be inserted at the end of the email header.
                                     
                                     This is typically used to add extra headers (From, Cc, and
                                     Bcc). Multiple extra headers should be separated with a CRLF
                                     (\r\n). Validate parameter not to be injected unwanted headers
                                     by attackers.
                                     
                                     If an <info>array</info> is passed, its keys are the header names and its
                                     values are the respective header values.
                                     
                                     When sending mail, the mail must contain a <return>From</return> header. This
                                     can be set with the  <strong>$additional_headers</strong> parameter, or a
                                     default can be set in php.ini.
                                     
                                     Failing to do this will result in an error message similar to
                                     <return>Warning: mail(): "sendmail_from" not set in php.ini or custom
                                     "From:" header missing</return>. The <return>From</return> header sets also <return>Return-Path</return>
                                     under Windows.
                                     
                                     If messages are not received, try using a LF (\n) only. Some
                                     Unix mail transfer agents (most notably qmail) replace LF by
                                     CRLF automatically (which leads to doubling CR if CRLF is
                                     used). This should be a last resort, as it does not comply with
                                     RFC 2822.
  <info>string|null</info>   <strong>$additional_params</strong>   <strong>$additional_params</strong> is a MTA command line parameter. It is
                                     useful when setting the correct Return-Path header when using
                                     sendmail.
                                     
                                     This parameter is escaped by <strong>escapeshellcmd()</strong> internally to
                                     prevent command execution. <strong>escapeshellcmd()</strong> prevents command
                                     execution, but allows to add additional parameters. For
                                     security reason, this parameter should be validated.
                                     
                                     Since <strong>escapeshellcmd()</strong> is applied automatically, some
                                     characters that are allowed as email addresses by internet RFCs
                                     cannot be used. Programs that are required to use these
                                     characters <strong>mail()</strong> cannot be used.
                                     
                                     The user that the webserver runs as should be added as a
                                     trusted user to the sendmail configuration to prevent a
                                     'X-Warning' header from being added to the message when the
                                     envelope sender (-f) is set using this method. For sendmail
                                     users, this file is /etc/mail/trusted-users.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mail()</strong>
   * <strong>mb_encode_mimeheader()</strong>
   * <strong>mb_language()</strong>


id: mb_split
type: function
doc:
<comment>Description:</comment>
  Split multibyte string using regular expression
  
  Split a multibyte <strong>$string</strong> using regular expression <strong>$pattern</strong> and returns the result as an <info>array</info>.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  The regular expression pattern.
  <info>string</info>  <strong>$string</strong>   The <info>string</info> being split.
  <info>int</info>     <strong>$limit</strong>    If optional parameter <strong>$limit</strong> is specified,  it will be split in <strong>$limit</strong> elements
                    as maximum.

<comment>Return:</comment>
  <info>array|false</info>  The result as an <info>array</info>,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg()</strong>


id: mb_str_pad
type: function
doc:
<comment>Description:</comment>
  Pad a multibyte string to a certain length with another multibyte string
  
  This function returns the <strong>$string</strong> padded on the left, the right, or both sides to the specified
  padding length, where the length is measured in Unicode codepoints. If the optional argument
  <strong>$pad_string</strong> is not supplied, the <strong>$string</strong> is padded with spaces, otherwise it is padded with
  characters from <strong>$pad_string</strong> up to the limit.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>      The input string.
  <info>int</info>          <strong>$length</strong>      If the value of <strong>$length</strong> is negative, less than, or equal to the length
                            of the input string, no padding takes place, and <strong>$string</strong> will be
                            returned.
  <info>string</info>       <strong>$pad_string</strong>  The <strong>$pad_string</strong> may be truncated if the required number of padding
                            characters can't be evenly divided by the <strong>$pad_string</strong>'s length.
  <info>int</info>          <strong>$pad_type</strong>    Optional argument <strong>$pad_type</strong> can be <info>STR_PAD_RIGHT</info>, <info>STR_PAD_LEFT</info>, or
                            <info>STR_PAD_BOTH</info>. By default <info>STR_PAD_RIGHT</info>.
  <info>string|null</info>  <strong>$encoding</strong>    The <strong>$encoding</strong>
                            parameter is the character encoding. If it is omitted or <info>null</info>, the
                            internal character
                            encoding value will be used.

<comment>Return:</comment>
  <info>string</info>  Returns the padded string.


id: mb_str_split
type: function
doc:
<comment>Description:</comment>
  Given a multibyte string, return an array of its characters
  
  This function will return an array of strings, it is a version of <strong>str_split()</strong> with support for
  encodings of variable character size as well as fixed-size encodings of 1,2 or 4 byte characters.
  If the <strong>$length</strong> parameter is specified, the string is broken down into chunks of the specified
  length in characters (not bytes). The <strong>$encoding</strong> parameter can be optionally specified and it is
  good practice to do so.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> to split into characters or chunks.
  <info>int</info>          <strong>$length</strong>    If specified, each element of the returned array will be composed of
                          multiple characters instead of a single character.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.
                          
                          A string specifying one of the supported encodings.

<comment>Return:</comment>
  <info>array</info>  <strong>mb_str_split()</strong> returns an array of strings.

<comment>See Also:</comment>
   * <strong>str_split()</strong>


id: mb_strcut
type: function
doc:
<comment>Description:</comment>
  Get part of string
  
  <strong>mb_strcut()</strong> extracts a substring from a string similarly to <strong>mb_substr()</strong>, but operates on bytes
  instead of characters. If the cut position happens to be between two bytes of a multi-byte
  character, the cut is performed starting from the first byte of that character. This is also the
  difference to the <strong>substr()</strong> function, which would simply cut the string between the bytes and thus
  result in a malformed byte sequence.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being cut.
  <info>int</info>          <strong>$start</strong>     If <strong>$start</strong> is non-negative, the returned string will start at the <strong>$start</strong>'th
                          byte position in <strong>$string</strong>, counting from zero. For instance, in the string
                          '<return>abcdef</return>', the byte at position <return>0</return> is '<return>a</return>', the byte at position <return>2</return> is '<return>c</return>',
                          and so forth.
                          
                          If <strong>$start</strong> is negative, the returned string will start at the <strong>$start</strong>'th
                          byte counting back from the end of <strong>$string</strong>. However, if the magnitude of a
                          negative <strong>$start</strong> is greater than the length of the string, the returned
                          portion will start from the beginning of <strong>$string</strong>.
  <info>int|null</info>     <strong>$length</strong>    Length in bytes. If omitted or <return>NULL</return> is passed, extract all bytes to the
                          end of the string.
                          
                          If <strong>$length</strong> is negative, the returned string will end at the <strong>$length</strong>'th
                          byte counting back from the end of <strong>$string</strong>. However, if the magnitude of a
                          negative <strong>$length</strong> is greater than the number of characters after the <strong>$start</strong>
                          position, an empty string will be returned.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>string</info>  <strong>mb_strcut()</strong> returns the portion of <strong>$string</strong> specified by the <strong>$start</strong> and <strong>$length</strong> parameters.

<comment>See Also:</comment>
   * <strong>mb_substr()</strong>
   * <strong>mb_internal_encoding()</strong>


id: mb_strimwidth
type: function
doc:
<comment>Description:</comment>
  Get truncated string with specified width
  
  Truncates <info>string</info> <strong>$string</strong> to specified <strong>$width</strong>, where halfwidth characters count as <return>1</return>, and fullwidth
  characters count as <return>2</return>. See http://www.unicode.org/reports/tr11/ for details regarding East Asian
  character widths.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>       The <info>string</info> being decoded.
  <info>int</info>          <strong>$start</strong>        The start position offset. Number of characters from the beginning of
                             string (first character is 0), or if start is negative, number of
                             characters from the end of the string.
  <info>int</info>          <strong>$width</strong>        The width of the desired trim. If negative width is specified, count
                             from the end of the string.  Passing negative width is deprecated as of
                             PHP 8.3.0.
                             
                             Passing negative width is deprecated as of PHP 8.3.0.
  <info>string</info>       <strong>$trim_marker</strong>  A string that is added to the end of string  when string is truncated.
  <info>string|null</info>  <strong>$encoding</strong>     The <strong>$encoding</strong>
                             parameter is the character encoding. If it is omitted or <info>null</info>, the
                             internal character
                             encoding value will be used.

<comment>Return:</comment>
  <info>string</info>  The truncated <info>string</info>. If <strong>$trim_marker</strong> is set, <strong>$trim_marker</strong> replaces the last chars to
          match the <strong>$width</strong>.

<comment>See Also:</comment>
   * <strong>mb_strwidth()</strong>
   * <strong>mb_internal_encoding()</strong>


id: mb_stripos
type: function
doc:
<comment>Description:</comment>
  Finds position of first occurrence of a string within another, case insensitive
  
  <strong>mb_stripos()</strong> returns the numeric position of the first occurrence of <strong>$needle</strong> in the <strong>$haystack</strong>
  string. Unlike <strong>mb_strpos()</strong>,  <strong>mb_stripos()</strong> is case-insensitive. If <strong>$needle</strong> is not found, it returns
  <info>false</info>.

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>  The string from which to get the position of the first occurrence of
                          <strong>$needle</strong>
  <info>string</info>       <strong>$needle</strong>    The string to find in <strong>$haystack</strong>
  <info>int</info>          <strong>$offset</strong>    The position in <strong>$haystack</strong> to start searching. A negative offset counts
                          from the end of the string.
  <info>string|null</info>  <strong>$encoding</strong>  Character encoding name to use. If it is omitted, internal character
                          encoding is used.

<comment>Return:</comment>
  <info>int|false</info>  Return the numeric position of the first occurrence of <strong>$needle</strong> in the <strong>$haystack</strong> string,
             or <info>false</info> if <strong>$needle</strong> is not found.

<comment>See Also:</comment>
   * <strong>stripos()</strong>
   * <strong>strpos()</strong>
   * <strong>mb_strpos()</strong>


id: mb_stristr
type: function
doc:
<comment>Description:</comment>
  Finds first occurrence of a string within another, case insensitive
  
  <strong>mb_stristr()</strong> finds the first occurrence of <strong>$needle</strong> in <strong>$haystack</strong> and returns the portion of
  <strong>$haystack</strong>. Unlike <strong>mb_strstr()</strong>,  <strong>mb_stristr()</strong> is case-insensitive. If <strong>$needle</strong> is not found, it
  returns <info>false</info>.

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>       The string from which to get the first occurrence of <strong>$needle</strong>
  <info>string</info>       <strong>$needle</strong>         The string to find in <strong>$haystack</strong>
  <info>bool</info>         <strong>$before_needle</strong>  Determines which portion of <strong>$haystack</strong> this function returns.  If set
                               to <info>true</info>, it returns all of  <strong>$haystack</strong> from the beginning to the first
                               occurrence of <strong>$needle</strong> (excluding needle). If set to <info>false</info>, it returns
                               all of <strong>$haystack</strong> from the first occurrence of <strong>$needle</strong> to the end
                               (including needle).
  <info>string|null</info>  <strong>$encoding</strong>       Character encoding name to use. If it is omitted, internal character
                               encoding is used.

<comment>Return:</comment>
  <info>string|false</info>  Returns the portion of <strong>$haystack</strong>, or <info>false</info> if <strong>$needle</strong> is not found.

<comment>See Also:</comment>
   * <strong>stristr()</strong>
   * <strong>strstr()</strong>
   * <strong>mb_strstr()</strong>


id: mb_strlen
type: function
doc:
<comment>Description:</comment>
  Get string length
  
  Gets the length of a <info>string</info>.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being checked for length.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>int</info>  Returns the number of characters in <info>string</info> <strong>$string</strong> having character encoding <strong>$encoding</strong>. A
       multi-byte character is counted as 1.

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>grapheme_strlen()</strong>
   * <strong>iconv_strlen()</strong>
   * <strong>strlen()</strong>


id: mb_strpos
type: function
doc:
<comment>Description:</comment>
  Find position of first occurrence of string in a string
  
  Finds position of the first occurrence of a <info>string</info> in a <info>string</info>.
  
  Performs a multi-byte safe <strong>strpos()</strong> operation based on number of characters. The first character's
  position is 0, the second character position is 1, and so on.

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>  The <info>string</info> being checked.
  <info>string</info>       <strong>$needle</strong>    The string to find in <strong>$haystack</strong>. In contrast with <strong>strpos()</strong>, numeric values
                          are not applied as the ordinal value of a character.
  <info>int</info>          <strong>$offset</strong>    The search offset. If it is not specified, 0 is used. A negative offset
                          counts from the end of the string.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>int|false</info>  Returns the numeric position of the first occurrence of <strong>$needle</strong> in the <strong>$haystack</strong>
             <info>string</info>. If <strong>$needle</strong> is not found, it returns <info>false</info>.

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>strpos()</strong>


id: mb_strrchr
type: function
doc:
<comment>Description:</comment>
  Finds the last occurrence of a character in a string within another
  
  <strong>mb_strrchr()</strong> finds the last occurrence of <strong>$needle</strong> in <strong>$haystack</strong> and returns the portion of
  <strong>$haystack</strong>. If <strong>$needle</strong> is not found, it returns <info>false</info>.

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>       The string from which to get the last occurrence of <strong>$needle</strong>
  <info>string</info>       <strong>$needle</strong>         The string to find in <strong>$haystack</strong>
  <info>bool</info>         <strong>$before_needle</strong>  Determines which portion of <strong>$haystack</strong> this function returns.  If set
                               to <info>true</info>, it returns all of <strong>$haystack</strong> from the beginning to the last
                               occurrence of <strong>$needle</strong>. If set to <info>false</info>, it returns all of <strong>$haystack</strong>
                               from the last occurrence of <strong>$needle</strong> to the end,
  <info>string|null</info>  <strong>$encoding</strong>       Character encoding name to use. If it is omitted, internal character
                               encoding is used.

<comment>Return:</comment>
  <info>string|false</info>  Returns the portion of <strong>$haystack</strong>. or <info>false</info> if <strong>$needle</strong> is not found.

<comment>See Also:</comment>
   * <strong>strrchr()</strong>
   * <strong>mb_strstr()</strong>
   * <strong>mb_strrichr()</strong>


id: mb_strrichr
type: function
doc:
<comment>Description:</comment>
  Finds the last occurrence of a character in a string within another, case insensitive
  
  <strong>mb_strrichr()</strong> finds the last occurrence of <strong>$needle</strong> in <strong>$haystack</strong> and returns the portion of
  <strong>$haystack</strong>. Unlike <strong>mb_strrchr()</strong>, <strong>mb_strrichr()</strong> is case-insensitive. If <strong>$needle</strong> is not found, it
  returns <info>false</info>.

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>       The string from which to get the last occurrence of <strong>$needle</strong>
  <info>string</info>       <strong>$needle</strong>         The string to find in <strong>$haystack</strong>
  <info>bool</info>         <strong>$before_needle</strong>  Determines which portion of <strong>$haystack</strong> this function returns.  If set
                               to <info>true</info>, it returns all of <strong>$haystack</strong> from the beginning to the last
                               occurrence of <strong>$needle</strong>. If set to <info>false</info>, it returns all of <strong>$haystack</strong>
                               from the last occurrence of <strong>$needle</strong> to the end,
  <info>string|null</info>  <strong>$encoding</strong>       Character encoding name to use. If it is omitted, internal character
                               encoding is used.

<comment>Return:</comment>
  <info>string|false</info>  Returns the portion of <strong>$haystack</strong>. or <info>false</info> if <strong>$needle</strong> is not found.

<comment>See Also:</comment>
   * <strong>mb_stristr()</strong>
   * <strong>mb_strrchr()</strong>


id: mb_strripos
type: function
doc:
<comment>Description:</comment>
  Finds position of last occurrence of a string within another, case insensitive
  
  <strong>mb_strripos()</strong> performs multi-byte safe <strong>strripos()</strong> operation based on number of characters. <strong>$needle</strong>
  position is counted from the beginning of <strong>$haystack</strong>. First character's position is 0. Second
  character position is 1.  Unlike <strong>mb_strrpos()</strong>, <strong>mb_strripos()</strong> is case-insensitive.

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>  The string from which to get the position of the last occurrence of
                          <strong>$needle</strong>
  <info>string</info>       <strong>$needle</strong>    The string to find in <strong>$haystack</strong>
  <info>int</info>          <strong>$offset</strong>    The position in <strong>$haystack</strong> to start searching
  <info>string|null</info>  <strong>$encoding</strong>  Character encoding name to use. If it is omitted, internal character
                          encoding is used.

<comment>Return:</comment>
  <info>int|false</info>  Return the numeric position of the last occurrence of <strong>$needle</strong> in the <strong>$haystack</strong> string,
             or <info>false</info> if <strong>$needle</strong> is not found.

<comment>See Also:</comment>
   * <strong>strripos()</strong>
   * <strong>strrpos()</strong>
   * <strong>mb_strrpos()</strong>


id: mb_strrpos
type: function
doc:
<comment>Description:</comment>
  Find position of last occurrence of a string in a string
  
  Performs a multibyte safe <strong>strrpos()</strong> operation based on the  number of characters. <strong>$needle</strong> position
  is counted from the beginning of <strong>$haystack</strong>. First character's position is 0. Second character
  position is 1.

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>  The <info>string</info> being checked, for the last occurrence of <strong>$needle</strong>
  <info>string</info>       <strong>$needle</strong>    The <info>string</info> to find in <strong>$haystack</strong>.
  <info>int</info>          <strong>$offset</strong>    May be specified to begin searching an arbitrary number of characters into
                          the <info>string</info>.  Negative values will stop searching at an arbitrary point
                          prior to the end of the <info>string</info>.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>int|false</info>  Returns the numeric position of the last occurrence of <strong>$needle</strong> in the <strong>$haystack</strong> <info>string</info>.
             If <strong>$needle</strong> is not found, it returns <info>false</info>.

<comment>See Also:</comment>
   * <strong>mb_strpos()</strong>
   * <strong>mb_internal_encoding()</strong>
   * <strong>strrpos()</strong>


id: mb_strstr
type: function
doc:
<comment>Description:</comment>
  Finds first occurrence of a string within another
  
  <strong>mb_strstr()</strong> finds the first occurrence of <strong>$needle</strong> in <strong>$haystack</strong> and returns the portion of
  <strong>$haystack</strong>. If <strong>$needle</strong> is not found, it returns <info>false</info>.

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>       The string from which to get the first occurrence of <strong>$needle</strong>
  <info>string</info>       <strong>$needle</strong>         The string to find in <strong>$haystack</strong>
  <info>bool</info>         <strong>$before_needle</strong>  Determines which portion of <strong>$haystack</strong> this function returns.  If set
                               to <info>true</info>, it returns all of  <strong>$haystack</strong> from the beginning to the first
                               occurrence of <strong>$needle</strong> (excluding needle). If set to <info>false</info>, it returns
                               all of <strong>$haystack</strong> from the first occurrence of <strong>$needle</strong> to the end
                               (including needle).
  <info>string|null</info>  <strong>$encoding</strong>       Character encoding name to use. If it is omitted, internal character
                               encoding is used.

<comment>Return:</comment>
  <info>string|false</info>  Returns the portion of <strong>$haystack</strong>, or <info>false</info> if <strong>$needle</strong> is not found.

<comment>See Also:</comment>
   * <strong>stristr()</strong>
   * <strong>strstr()</strong>
   * <strong>mb_stristr()</strong>


id: mb_strtolower
type: function
doc:
<comment>Description:</comment>
  Make a string lowercase
  
  Returns <strong>$string</strong> with all alphabetic characters converted to lowercase.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being lowercased.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>string</info>  <strong>$string</strong> with all alphabetic characters converted to lowercase.

<comment>See Also:</comment>
   * <strong>mb_strtoupper()</strong>
   * <strong>mb_convert_case()</strong>
   * <strong>strtolower()</strong>


id: mb_strtoupper
type: function
doc:
<comment>Description:</comment>
  Make a string uppercase
  
  Returns <strong>$string</strong> with all alphabetic characters converted to uppercase.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being uppercased.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>string</info>  <strong>$string</strong> with all alphabetic characters converted to uppercase.

<comment>See Also:</comment>
   * <strong>mb_strtolower()</strong>
   * <strong>mb_convert_case()</strong>
   * <strong>strtoupper()</strong>


id: mb_strwidth
type: function
doc:
<comment>Description:</comment>
  Return width of string
  
  Returns the width of <info>string</info> <strong>$string</strong>, where halfwidth characters count as <return>1</return>, and fullwidth
  characters count as <return>2</return>. See http://www.unicode.org/reports/tr11/ for details regarding East Asian
  character widths.
  
  The fullwidth characters are: <return>U+1100</return>-<return>U+115F</return>, <return>U+11A3</return>-<return>U+11A7</return>, <return>U+11FA</return>-<return>U+11FF</return>, <return>U+2329</return>-<return>U+232A</return>,
  <return>U+2E80</return>-<return>U+2E99</return>, <return>U+2E9B</return>-<return>U+2EF3</return>, <return>U+2F00</return>-<return>U+2FD5</return>, <return>U+2FF0</return>-<return>U+2FFB</return>, <return>U+3000</return>-<return>U+303E</return>, <return>U+3041</return>-<return>U+3096</return>,
  <return>U+3099</return>-<return>U+30FF</return>, <return>U+3105</return>-<return>U+312D</return>, <return>U+3131</return>-<return>U+318E</return>, <return>U+3190</return>-<return>U+31BA</return>, <return>U+31C0</return>-<return>U+31E3</return>, <return>U+31F0</return>-<return>U+321E</return>,
  <return>U+3220</return>-<return>U+3247</return>, <return>U+3250</return>-<return>U+32FE</return>, <return>U+3300</return>-<return>U+4DBF</return>, <return>U+4E00</return>-<return>U+A48C</return>, <return>U+A490</return>-<return>U+A4C6</return>, <return>U+A960</return>-<return>U+A97C</return>,
  <return>U+AC00</return>-<return>U+D7A3</return>, <return>U+D7B0</return>-<return>U+D7C6</return>, <return>U+D7CB</return>-<return>U+D7FB</return>, <return>U+F900</return>-<return>U+FAFF</return>, <return>U+FE10</return>-<return>U+FE19</return>, <return>U+FE30</return>-<return>U+FE52</return>,
  <return>U+FE54</return>-<return>U+FE66</return>, <return>U+FE68</return>-<return>U+FE6B</return>, <return>U+FF01</return>-<return>U+FF60</return>, <return>U+FFE0</return>-<return>U+FFE6</return>, <return>U+1B000</return>-<return>U+1B001</return>, <return>U+1F200</return>-<return>U+1F202</return>,
  <return>U+1F210</return>-<return>U+1F23A</return>, <return>U+1F240</return>-<return>U+1F248</return>, <return>U+1F250</return>-<return>U+1F251</return>, <return>U+20000</return>-<return>U+2FFFD</return>, <return>U+30000</return>-<return>U+3FFFD</return>. All other
  characters are halfwidth characters.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being decoded.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>int</info>  The width of <info>string</info> <strong>$string</strong>.

<comment>See Also:</comment>
   * <strong>mb_strimwidth()</strong>
   * <strong>mb_internal_encoding()</strong>


id: mb_substitute_character
type: function
doc:
<comment>Description:</comment>
  Set/Get substitution character
  
  Specifies a substitution character when input character encoding is invalid or character code does
  not exist in output character encoding. Invalid characters may be substituted <return>"none"</return> (no output),
  <info>string</info> or <info>int</info> value (Unicode character code value).
  
  This setting affects <strong>mb_convert_encoding()</strong>, <strong>mb_convert_variables()</strong>, <strong>mb_output_handler()</strong>, and
  <strong>mb_send_mail()</strong>.

<comment>Param:</comment>
  <info>string|int|null</info>  <strong>$substitute_character</strong>  Specify the Unicode value as an <info>int</info>,  or as one of the
                                          following <info>string</info>s: <return>"none"</return>: no output <return>"long"</return>: Output
                                          character code value (Example: <return>U+3000</return>, <return>JIS+7E7E</return>) <return>"entity"</return>:
                                          Output character entity (Example: <return>&#x200;</return>)
                                          
                                          <return>"none"</return>: no output
                                          
                                          <return>"long"</return>: Output character code value (Example: <return>U+3000</return>,
                                          <return>JIS+7E7E</return>)
                                          
                                          <return>"entity"</return>: Output character entity (Example: <return>&#x200;</return>)

<comment>Return:</comment>
  <info>string|int|bool</info>  If <strong>$substitute_character</strong> is set, it returns <info>true</info> for success, otherwise returns
                   <info>false</info>.  If <strong>$substitute_character</strong> is not set, it returns the current setting.


id: mb_substr
type: function
doc:
<comment>Description:</comment>
  Get part of string
  
  Performs a multi-byte safe <strong>substr()</strong> operation based on number of characters. Position is counted
  from the beginning of <strong>$string</strong>. First character's position is 0. Second character position is 1,
  and so on.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> to extract the substring from.
  <info>int</info>          <strong>$start</strong>     If <strong>$start</strong> is non-negative, the returned string will start at the <strong>$start</strong>'th
                          position in <strong>$string</strong>, counting from zero. For instance, in the string
                          '<return>abcdef</return>', the character at position <return>0</return> is '<return>a</return>', the character at position <return>2</return>
                          is '<return>c</return>', and so forth.
                          
                          If <strong>$start</strong> is negative, the returned string will start at the <strong>$start</strong>'th
                          character from the end of <strong>$string</strong>.
  <info>int|null</info>     <strong>$length</strong>    Maximum number of characters to use from <strong>$string</strong>. If omitted or <return>NULL</return> is
                          passed, extract all characters to the end of the string.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>string</info>  <strong>mb_substr()</strong> returns the portion of <strong>$string</strong> specified by the <strong>$start</strong> and <strong>$length</strong> parameters.

<comment>See Also:</comment>
   * <strong>mb_strcut()</strong>
   * <strong>mb_internal_encoding()</strong>


id: mb_substr_count
type: function
doc:
<comment>Description:</comment>
  Count the number of substring occurrences
  
  Counts the number of times the <strong>$needle</strong> substring occurs in the <strong>$haystack</strong> <info>string</info>.

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>  The <info>string</info> being checked.
  <info>string</info>       <strong>$needle</strong>    The <info>string</info> being found.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>int</info>  The number of times the <strong>$needle</strong> substring occurs in the <strong>$haystack</strong> <info>string</info>.

<comment>See Also:</comment>
   * <strong>mb_strpos()</strong>
   * <strong>mb_substr()</strong>
   * <strong>substr_count()</strong>


id: mcrypt_create_iv
type: function
doc:
<comment>Description:</comment>
  Creates an initialization vector (IV) from a random source
  
  Creates an initialization vector (IV) from a random source.
  
  The IV is only meant to give an alternative seed to the encryption routines. This IV does not need
  to be secret at all, though it can be desirable. You even can send it along with your ciphertext
  without losing security.

<comment>Param:</comment>
  <info>int</info>  <strong>$size</strong>    The size of the IV.
  <info>int</info>  <strong>$source</strong>  The source of the IV. The source can be <info>MCRYPT_RAND</info> (system random number
                generator), <info>MCRYPT_DEV_RANDOM</info> (read data from /dev/random) and <info>MCRYPT_DEV_URANDOM</info>
                (read data from /dev/urandom). Prior to 5.3.0, <info>MCRYPT_RAND</info> was the only one
                supported on Windows.
                
                Note that the default value of this parameter was <info>MCRYPT_DEV_RANDOM</info> prior to PHP
                5.6.0.
                
                Note that <info>MCRYPT_DEV_RANDOM</info> may block until more entropy is available.

<comment>Return:</comment>
  <info>string</info>  Returns the initialization vector, or <info>false</info> on error.

<comment>See Also:</comment>
   * http://www.ciphersbyritter.com/GLOSSARY.HTM#IV
   * http://www.quadibloc.com/crypto/co0409.htm
   * Chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9)
   * <strong>random_bytes()</strong>


id: mcrypt_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypts crypttext with given parameters
  
  Decrypts the <strong>$data</strong> and returns the unencrypted data.

<comment>Param:</comment>
  <info>string</info>  <strong>$cipher</strong>  One of the <info>MCRYPT_ciphername</info> constants, or the name of the algorithm as string.
  <info>string</info>  <strong>$key</strong>     The key with which the data was encrypted. If the provided key size is not
                   supported by the cipher, the function will emit a warning and return <info>false</info>
  <info>string</info>  <strong>$data</strong>    The data that will be decrypted with the given <strong>$cipher</strong> and <strong>$mode</strong>. If the size of
                   the data is not n * blocksize, the data will be padded with '<return>\0</return>'.
  <info>string</info>  <strong>$mode</strong>    One of the <info>MCRYPT_MODE_modename</info> constants, or one of the following strings:
                   "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".
  <info>string</info>  <strong>$iv</strong>      Used for the initialization in CBC, CFB, OFB modes, and in some algorithms in
                   STREAM mode. If the provided IV size is not supported by the chaining mode or no
                   IV was provided, but the chaining mode requires one, the function will emit a
                   warning and return <info>false</info>.

<comment>Return:</comment>
  <info>string|false</info>  Returns the decrypted data as a string  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mcrypt_encrypt()</strong>


id: mcrypt_enc_get_algorithms_name
type: function
doc:
<comment>Description:</comment>
  Returns the name of the opened algorithm
  
  This function returns the name of the algorithm.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>string</info>  Returns the name of the opened algorithm as a string.


id: mcrypt_enc_get_block_size
type: function
doc:
<comment>Description:</comment>
  Returns the blocksize of the opened algorithm
  
  Gets the blocksize of the opened algorithm.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>int</info>  Returns the block size of the specified algorithm in bytes.


id: mcrypt_enc_get_iv_size
type: function
doc:
<comment>Description:</comment>
  Returns the size of the IV of the opened algorithm
  
  This function returns the size of the IV of the algorithm specified by the encryption descriptor
  in bytes. An IV is used in cbc, cfb and ofb modes, and in some algorithms in stream mode.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>int</info>  Returns the size of the IV, or 0 if the IV is ignored by the algorithm.


id: mcrypt_enc_get_key_size
type: function
doc:
<comment>Description:</comment>
  Returns the maximum supported keysize of the opened mode
  
  Gets the maximum supported key size of the algorithm in bytes.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>int</info>  Returns the maximum supported key size of the algorithm in bytes.


id: mcrypt_enc_get_modes_name
type: function
doc:
<comment>Description:</comment>
  Returns the name of the opened mode
  
  This function returns the name of the mode.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>string</info>  Returns the name as a string.


id: mcrypt_enc_get_supported_key_sizes
type: function
doc:
<comment>Description:</comment>
  Returns an array with the supported keysizes of the opened algorithm
  
  Gets the supported key sizes of the opened algorithm.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>array</info>  Returns an array with the key sizes supported by the algorithm specified by the encryption
         descriptor. If it returns an empty array then all key sizes between 1 and
         <strong>mcrypt_enc_get_key_size()</strong> are supported by the algorithm.


id: mcrypt_enc_is_block_algorithm
type: function
doc:
<comment>Description:</comment>
  Checks whether the algorithm of the opened mode is a block algorithm
  
  Tells whether the algorithm of the opened mode is a block algorithm.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the algorithm is a block algorithm or <info>false</info> if it is a stream one.


id: mcrypt_enc_is_block_algorithm_mode
type: function
doc:
<comment>Description:</comment>
  Checks whether the encryption of the opened mode works on blocks
  
  Tells whether the algorithm of the opened mode works on blocks (e.g. <info>false</info> for stream, and <info>true</info>
  for cbc, cfb, ofb)..

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the mode is for use with block algorithms, otherwise it returns <info>false</info>.


id: mcrypt_enc_is_block_mode
type: function
doc:
<comment>Description:</comment>
  Checks whether the opened mode outputs blocks
  
  Tells whether the opened mode outputs blocks (e.g. <info>true</info> for cbc and ecb, and <info>false</info> for cfb and
  stream).

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the mode outputs blocks of bytes, or <info>false</info> if it outputs just bytes.


id: mcrypt_enc_self_test
type: function
doc:
<comment>Description:</comment>
  Runs a self test on the opened module
  
  This function runs the self test on the algorithm specified by the descriptor <strong>$td</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>int</info>  Returns <return>0</return> on success and a negative <info>int</info> on failure.


id: mcrypt_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypts plaintext with given parameters
  
  Encrypts the data and returns it.

<comment>Param:</comment>
  <info>string</info>  <strong>$cipher</strong>  One of the <info>MCRYPT_ciphername</info> constants, or the name of the algorithm as string.
  <info>string</info>  <strong>$key</strong>     The key with which the data will be encrypted. If the provided key size is not
                   supported by the cipher, the function will emit a warning and return <info>false</info>
  <info>string</info>  <strong>$data</strong>    The data that will be encrypted with the given <strong>$cipher</strong> and <strong>$mode</strong>. If the size of
                   the data is not n * blocksize, the data will be padded with '<return>\0</return>'.
                   
                   The returned crypttext can be larger than the size of the data that was given by
                   <strong>$data</strong>.
  <info>string</info>  <strong>$mode</strong>    One of the <info>MCRYPT_MODE_modename</info> constants, or one of the following strings:
                   "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".
  <info>string</info>  <strong>$iv</strong>      Used for the initialization in CBC, CFB, OFB modes, and in some algorithms in
                   STREAM mode. If the provided IV size is not supported by the chaining mode or no
                   IV was provided, but the chaining mode requires one, the function will emit a
                   warning and return <info>false</info>.

<comment>Return:</comment>
  <info>string|false</info>  Returns the encrypted data as a string  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mcrypt_decrypt()</strong>
   * <strong>mcrypt_module_open()</strong>


id: mcrypt_generic
type: function
doc:
<comment>Description:</comment>
  This function encrypts data
  
  This function encrypts data. The data is padded with "<return>\0</return>" to make sure the length of the data is n
  * blocksize. This function returns the encrypted data. Note that the length of the returned string
  can in fact be longer than the input, due to the padding of the data.
  
  If you want to store the encrypted data in a database make sure to store the entire string as
  returned by mcrypt_generic, or the string will not entirely decrypt properly.  If your original
  string is 10 characters long and the block size is 8 (use <strong>mcrypt_enc_get_block_size()</strong> to determine
  the blocksize), you would need at least 16 characters in your database field. Note the string
  returned by <strong>mdecrypt_generic()</strong> will be 16 characters as well...use rtrim($str, "\0") to remove the
  padding.
  
  If you are for example storing the data in a MySQL database remember that varchar fields
  automatically have trailing spaces removed during insertion. As encrypted data can end in a space
  (ASCII 32), the data will be damaged by this removal.  Store data in a tinyblob/tinytext (or
  larger) field instead.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>    The encryption descriptor.
                   
                   The encryption handle should always be initialized with <strong>mcrypt_generic_init()</strong>
                   with a key and an IV before calling this function. Where the encryption is done,
                   you should free the encryption buffers by calling <strong>mcrypt_generic_deinit()</strong>. See
                   <strong>mcrypt_module_open()</strong> for an example.
  <info>string</info>    <strong>$data</strong>  The data to encrypt.

<comment>Return:</comment>
  <info>string</info>  Returns the encrypted data.

<comment>See Also:</comment>
   * <strong>mdecrypt_generic()</strong>
   * <strong>mcrypt_generic_init()</strong>
   * <strong>mcrypt_generic_deinit()</strong>


id: mcrypt_generic_deinit
type: function
doc:
<comment>Description:</comment>
  This function deinitializes an encryption module
  
  This function terminates encryption specified by the encryption descriptor (<strong>$td</strong>). It clears all
  buffers, but does not close the module.  You need to call <strong>mcrypt_module_close()</strong> yourself. (But PHP
  does this for you at the end of the script.)

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mcrypt_module_open()</strong>
   * <strong>mcrypt_generic_init()</strong>


id: mcrypt_generic_init
type: function
doc:
<comment>Description:</comment>
  This function initializes all buffers needed for encryption
  
  You need to call this function before every call to <strong>mcrypt_generic()</strong> or <strong>mdecrypt_generic()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>   The encryption descriptor.
  <info>string</info>    <strong>$key</strong>  The maximum length of the key should be the one obtained by calling
                  <strong>mcrypt_enc_get_key_size()</strong> and every value smaller than this is legal.
  <info>string</info>    <strong>$iv</strong>   The IV should normally have the size of the algorithms block size, but you must
                  obtain the size by calling <strong>mcrypt_enc_get_iv_size()</strong>. IV is ignored in ECB. IV MUST
                  exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be random and unique
                  (but not secret). The same IV must be used for encryption/decryption. If you do
                  not want to use it you should set it to zeros, but this is not recommended.

<comment>Return:</comment>
  <info>int</info>  The function returns a negative value on error: -3 when the key length was incorrect, -4 when
       there was a memory allocation problem and any other return value is an unknown error. If an
       error occurs a warning will be displayed accordingly. <info>false</info> is returned if incorrect
       parameters were passed.

<comment>See Also:</comment>
   * <strong>mcrypt_module_open()</strong>


id: mcrypt_get_block_size
type: function
doc:
<comment>Description:</comment>
  Gets the block size of the specified cipher
  
  The first prototype is when linked against libmcrypt 2.2.x, the second when linked against
  libmcrypt 2.4.x or 2.5.x.
  
  <strong>mcrypt_get_block_size()</strong> is used to get the size of a block of the specified <strong>$cipher</strong> (in
  combination with an encryption mode).
  
  It is more useful to use the <strong>mcrypt_enc_get_block_size()</strong> function as this uses the resource
  returned by <strong>mcrypt_module_open()</strong>.

<comment>Param:</comment>
  <info>int</info>     <strong>$cipher</strong>  One of the <info>MCRYPT_ciphername</info> constants, or the name of the algorithm as string.
  <info>string</info>  <strong>$mode</strong>    One of the <info>MCRYPT_MODE_modename</info> constants, or one of the following strings:
                   "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

<comment>Return:</comment>
  <info>int|false</info>  Returns the algorithm block size in bytes  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mcrypt_get_key_size()</strong>
   * <strong>mcrypt_enc_get_block_size()</strong>
   * <strong>mcrypt_encrypt()</strong>


id: mcrypt_get_cipher_name
type: function
doc:
<comment>Description:</comment>
  Gets the name of the specified cipher
  
  <strong>mcrypt_get_cipher_name()</strong> is used to get the name of the specified cipher.
  
  <strong>mcrypt_get_cipher_name()</strong> takes the cipher number as an argument (libmcrypt 2.2.x) or takes the
  cipher name as an argument (libmcrypt 2.4.x or higher) and returns the name of the cipher or
  <info>false</info>, if the cipher does not exist.

<comment>Param:</comment>
  <info>int</info>  <strong>$cipher</strong>  One of the <info>MCRYPT_ciphername</info> constants, or the name of the algorithm as string.

<comment>Return:</comment>
  <info>string</info>  This function returns the name of the cipher or <info>false</info> if the cipher does not exist.


id: mcrypt_get_iv_size
type: function
doc:
<comment>Description:</comment>
  Returns the size of the IV belonging to a specific cipher/mode combination
  
  Gets the size of the IV belonging to a specific  <strong>$cipher</strong>/<strong>$mode</strong> combination.
  
  It is more useful to use the <strong>mcrypt_enc_get_iv_size()</strong> function as this uses the resource returned
  by <strong>mcrypt_module_open()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$cipher</strong>  One of the <info>MCRYPT_ciphername</info> constants, or the name of the algorithm as string.
  <info>string</info>  <strong>$mode</strong>    One of the <info>MCRYPT_MODE_modename</info> constants, or one of the following strings:
                   "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".
                   
                   The IV is ignored in ECB mode as this mode does not require it. You will need to
                   have the same IV (think: starting point) both at encryption and decryption
                   stages, otherwise your encryption will fail.

<comment>Return:</comment>
  <info>int</info>  Returns the size of the Initialization Vector (IV) in bytes. On error the function returns
       <info>false</info>. If the IV is ignored in the specified cipher/mode combination zero is returned.

<comment>See Also:</comment>
   * <strong>mcrypt_get_block_size()</strong>
   * <strong>mcrypt_enc_get_iv_size()</strong>
   * <strong>mcrypt_create_iv()</strong>


id: mcrypt_get_key_size
type: function
doc:
<comment>Description:</comment>
  Gets the key size of the specified cipher
  
  The first prototype is when linked against libmcrypt 2.2.x, the second when linked against
  libmcrypt 2.4.x or 2.5.x.
  
  <strong>mcrypt_get_key_size()</strong> is used to get the size of a key of the specified <strong>$cipher</strong> (in combination
  with an encryption mode).
  
  It is more useful to use the <strong>mcrypt_enc_get_key_size()</strong> function as this uses the resource returned
  by <strong>mcrypt_module_open()</strong>.

<comment>Param:</comment>
  <info>int</info>     <strong>$cipher</strong>  One of the <info>MCRYPT_ciphername</info> constants, or the name of the algorithm as string.
  <info>string</info>  <strong>$mode</strong>    One of the <info>MCRYPT_MODE_modename</info> constants, or one of the following strings:
                   "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

<comment>Return:</comment>
  <info>int|false</info>  Returns the maximum supported key size of the algorithm in bytes or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mcrypt_get_block_size()</strong>
   * <strong>mcrypt_enc_get_key_size()</strong>
   * <strong>mcrypt_encrypt()</strong>


id: mcrypt_list_algorithms
type: function
doc:
<comment>Description:</comment>
  Gets an array of all supported ciphers
  
  Gets the list of all supported algorithms in the <strong>$lib_dir</strong> parameter.

<comment>Param:</comment>
  <info>string</info>  <strong>$lib_dir</strong>  Specifies the directory where all algorithms are located. If not specified, the
                    value of the <return>mcrypt.algorithms_dir</return> php.ini directive is used.

<comment>Return:</comment>
  <info>array</info>  Returns an array with all the supported algorithms.


id: mcrypt_list_modes
type: function
doc:
<comment>Description:</comment>
  Gets an array of all supported modes
  
  Gets the list of all supported modes in the <strong>$lib_dir</strong> parameter.

<comment>Param:</comment>
  <info>string</info>  <strong>$lib_dir</strong>  Specifies the directory where all modes are located. If not specified, the value
                    of the <return>mcrypt.modes_dir</return> php.ini directive is used.

<comment>Return:</comment>
  <info>array</info>  Returns an array with all the supported modes.


id: mcrypt_module_close
type: function
doc:
<comment>Description:</comment>
  Closes the mcrypt module
  
  Closes the specified encryption handle.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  The encryption descriptor.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mcrypt_module_open()</strong>


id: mcrypt_module_get_algo_block_size
type: function
doc:
<comment>Description:</comment>
  Returns the blocksize of the specified algorithm
  
  Gets the blocksize of the specified algorithm.

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>  The algorithm name.
  <info>string</info>  <strong>$lib_dir</strong>    This optional parameter can contain the location where the mode module is on
                      the system.

<comment>Return:</comment>
  <info>int</info>  Returns the block size of the algorithm specified in bytes.


id: mcrypt_module_get_algo_key_size
type: function
doc:
<comment>Description:</comment>
  Returns the maximum supported keysize of the opened mode
  
  Gets the maximum supported keysize of the opened mode.

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>  The algorithm name.
  <info>string</info>  <strong>$lib_dir</strong>    This optional parameter can contain the location where the mode module is on
                      the system.

<comment>Return:</comment>
  <info>int</info>  This function returns the maximum supported key size of the algorithm specified in bytes.


id: mcrypt_module_get_supported_key_sizes
type: function
doc:
<comment>Description:</comment>
  Returns an array with the supported keysizes of the opened algorithm
  
  Returns an array with the key sizes supported by the specified algorithm. If it returns an empty
  array then all key sizes between 1 and <strong>mcrypt_module_get_algo_key_size()</strong> are supported by the
  algorithm.

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>  The algorithm to be used.
  <info>string</info>  <strong>$lib_dir</strong>    The optional <strong>$lib_dir</strong> parameter can contain the location where the algorithm
                      module is on the system.

<comment>Return:</comment>
  <info>array</info>  Returns an array with the key sizes supported by the specified algorithm. If it returns an
         empty array then all key sizes between 1 and <strong>mcrypt_module_get_algo_key_size()</strong> are
         supported by the algorithm.

<comment>See Also:</comment>
   * <strong>mcrypt_enc_get_supported_key_sizes()</strong>


id: mcrypt_module_is_block_algorithm
type: function
doc:
<comment>Description:</comment>
  This function checks whether the specified algorithm is a block algorithm
  
  This function returns <info>true</info> if the specified algorithm is a block algorithm, or <info>false</info> if it is a
  stream one.

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>  The algorithm to check.
  <info>string</info>  <strong>$lib_dir</strong>    The optional <strong>$lib_dir</strong> parameter can contain the location where the algorithm
                      module is on the system.

<comment>Return:</comment>
  <info>bool</info>  This function returns <info>true</info> if the specified algorithm is a block algorithm, or <info>false</info> if it
        is a stream one.


id: mcrypt_module_is_block_algorithm_mode
type: function
doc:
<comment>Description:</comment>
  Returns if the specified module is a block algorithm or not
  
  This function returns <info>true</info> if the mode is for use with block algorithms, otherwise it returns
  <info>false</info>. (e.g. <info>false</info> for stream, and <info>true</info> for cbc, cfb, ofb).

<comment>Param:</comment>
  <info>string</info>  <strong>$mode</strong>     The mode to check.
  <info>string</info>  <strong>$lib_dir</strong>  The optional <strong>$lib_dir</strong> parameter can contain the location where the algorithm
                    module is on the system.

<comment>Return:</comment>
  <info>bool</info>  This function returns <info>true</info> if the mode is for use with block algorithms, otherwise it
        returns <info>false</info>. (e.g. <info>false</info> for stream, and <info>true</info> for cbc, cfb, ofb).


id: mcrypt_module_is_block_mode
type: function
doc:
<comment>Description:</comment>
  Returns if the specified mode outputs blocks or not
  
  This function returns <info>true</info> if the mode outputs blocks of bytes or <info>false</info> if it outputs just bytes.
  (e.g. <info>true</info> for cbc and ecb, and <info>false</info> for cfb and stream).

<comment>Param:</comment>
  <info>string</info>  <strong>$mode</strong>     One of the <info>MCRYPT_MODE_modename</info> constants, or one of the following strings:
                    "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".
  <info>string</info>  <strong>$lib_dir</strong>  The optional <strong>$lib_dir</strong> parameter can contain the location where the algorithm
                    module is on the system.

<comment>Return:</comment>
  <info>bool</info>  This function returns <info>true</info> if the mode outputs blocks of bytes or <info>false</info> if it outputs just
        bytes. (e.g. <info>true</info> for cbc and ecb, and <info>false</info> for cfb and stream).


id: mcrypt_module_open
type: function
doc:
<comment>Description:</comment>
  Opens the module of the algorithm and the mode to be used
  
  This function opens the module of the algorithm and the mode to be used. The name of the algorithm
  is specified in algorithm, e.g. <return>"twofish"</return> or is one of the <info>MCRYPT_ciphername</info> constants.  The
  module is closed by calling <strong>mcrypt_module_close()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>            One of the <info>MCRYPT_ciphername</info> constants, or the name of the algorithm
                                as string.
  <info>string</info>  <strong>$algorithm_directory</strong>  The <strong>$algorithm_directory</strong> parameter is used to locate the encryption
                                module. When you supply a directory name, it is used.  When you set
                                it to an empty string (<return>""</return>), the value set by the
                                <return>mcrypt.algorithms_dir</return> php.ini directive is used. When it is not set,
                                the default directory that is used is the one that was compiled into
                                libmcrypt (usually /usr/local/lib/libmcrypt).
  <info>string</info>  <strong>$mode</strong>                 One of the <info>MCRYPT_MODE_modename</info> constants, or one of the following
                                strings: "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".
  <info>string</info>  <strong>$mode_directory</strong>       The <strong>$mode_directory</strong> parameter is used to locate the encryption
                                module. When you supply a directory name, it is used.  When you set
                                it to an empty string (<return>""</return>), the value set by the <return>mcrypt.modes_dir</return>
                                php.ini directive is used. When it is not set, the default directory
                                that is used is the one that was compiled-in into libmcrypt (usually
                                /usr/local/lib/libmcrypt).

<comment>Return:</comment>
  <info>resource</info>  Normally it returns an encryption descriptor, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mcrypt_module_close()</strong>
   * <strong>mcrypt_generic()</strong>
   * <strong>mdecrypt_generic()</strong>
   * <strong>mcrypt_generic_init()</strong>
   * <strong>mcrypt_generic_deinit()</strong>


id: mcrypt_module_self_test
type: function
doc:
<comment>Description:</comment>
  This function runs a self test on the specified module
  
  This function runs the self test on the algorithm specified.

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>  One of the <info>MCRYPT_ciphername</info> constants, or the name of the algorithm as
                      string.
  <info>string</info>  <strong>$lib_dir</strong>    The optional <strong>$lib_dir</strong> parameter can contain the location where the algorithm
                      module is on the system.

<comment>Return:</comment>
  <info>bool</info>  The function returns <info>true</info> if the self test succeeds, or <info>false</info> when it fails.


id: md5
type: function
doc:
<comment>Description:</comment>
  Calculate the md5 hash of a string
  
  Calculates the MD5 hash of <strong>$string</strong> using the RSA Data Security, Inc. MD5 Message-Digest Algorithm,
  and returns that hash.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The string.
  <info>bool</info>    <strong>$binary</strong>  If the optional <strong>$binary</strong> is set to <info>true</info>, then the md5 digest is instead returned
                   in raw binary format with a length of 16.

<comment>Return:</comment>
  <info>string</info>  Returns the hash as a 32-character hexadecimal number.

<comment>See Also:</comment>
   * <strong>md5_file()</strong>
   * <strong>sha1_file()</strong>
   * <strong>crc32()</strong>
   * <strong>sha1()</strong>
   * <strong>hash()</strong>
   * <strong>crypt()</strong>
   * <strong>password_hash()</strong>


id: md5_file
type: function
doc:
<comment>Description:</comment>
  Calculates the md5 hash of a given file
  
  Calculates the MD5 hash of the file specified by the <strong>$filename</strong> parameter using the RSA Data
  Security, Inc.  MD5 Message-Digest Algorithm, and returns that hash. The hash is a 32-character
  hexadecimal number.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The filename
  <info>bool</info>    <strong>$binary</strong>    When <info>true</info>, returns the digest in raw binary format with a length of 16.

<comment>Return:</comment>
  <info>string|false</info>  Returns a string on success, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>md5()</strong>
   * <strong>sha1_file()</strong>
   * <strong>crc32()</strong>


id: mdecrypt_generic
type: function
doc:
<comment>Description:</comment>
  Decrypts data
  
  This function decrypts data. Note that the length of the returned string can in fact be longer
  than the unencrypted string, due to the padding of the data.

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>    An encryption descriptor returned by <strong>mcrypt_module_open()</strong>
  <info>string</info>    <strong>$data</strong>  Encrypted data.

<comment>Return:</comment>
  <info>string</info>  Returns decrypted string.

<comment>See Also:</comment>
   * <strong>mcrypt_generic()</strong>
   * <strong>mcrypt_generic_init()</strong>
   * <strong>mcrypt_generic_deinit()</strong>


id: memcache_debug
type: function
doc:
<comment>Description:</comment>
  Turn debug output on/off
  
  <strong>memcache_debug()</strong> turns on debug output if parameter <strong>$on_off</strong> is equal to <info>true</info> and turns off if it's
  <info>false</info>. <strong>memcache_debug()</strong> is accessible only if PHP was built with --enable-debug option and always
  returns <info>true</info> in this case. Otherwise, this function has no effect and always returns <info>false</info>.
  
  <strong>memcache_debug()</strong> is accessible only if PHP was built with --enable-debug option and always returns
  <info>true</info> in this case. Otherwise, this function has no effect and always returns <info>false</info>.

<comment>Param:</comment>
  <info>bool</info>  <strong>$on_off</strong>  Turns debug output on if equals to <info>true</info>. Turns debug output off if equals to <info>false</info>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if PHP was built with --enable-debug option, otherwise returns <info>false</info>.


id: memory_get_peak_usage
type: function
doc:
<comment>Description:</comment>
  Returns the peak of memory allocated by PHP
  
  Returns the peak of memory, in bytes, that's been allocated to your PHP script.

<comment>Param:</comment>
  <info>bool</info>  <strong>$real_usage</strong>  Set this to <info>true</info> to get the real size of memory allocated from system. If not
                     set or <info>false</info> only the memory used by <return>emalloc()</return> is reported.

<comment>Return:</comment>
  <info>int</info>  Returns the memory peak in bytes.

<comment>See Also:</comment>
   * <strong>memory_get_usage()</strong>
   * <strong>memory_reset_peak_usage()</strong>
   * memory_limit


id: memory_get_usage
type: function
doc:
<comment>Description:</comment>
  Returns the amount of memory allocated to PHP
  
  Returns the amount of memory, in bytes, that's currently being allocated to your PHP script.

<comment>Param:</comment>
  <info>bool</info>  <strong>$real_usage</strong>  Set this to <info>true</info> to get total memory allocated from system, including unused
                     pages.  If not set or <info>false</info> only the used memory is reported.

<comment>Return:</comment>
  <info>int</info>  Returns the memory amount in bytes.

<comment>See Also:</comment>
   * <strong>memory_get_peak_usage()</strong>
   * memory_limit


id: memory_reset_peak_usage
type: function
doc:
<comment>Description:</comment>
  Reset the peak memory usage
  
  Resets the peak memory usage returned by the <strong>memory_get_peak_usage()</strong> function.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>memory_get_peak_usage()</strong>


id: metaphone
type: function
doc:
<comment>Description:</comment>
  Calculate the metaphone key of a string
  
  Calculates the metaphone key of <strong>$string</strong>.
  
  Similar to <strong>soundex()</strong> metaphone creates the same key for similar sounding words. It's more accurate
  than <strong>soundex()</strong> as it knows the basic rules of English pronunciation.  The metaphone generated keys
  are of variable length.
  
  Metaphone was developed by Lawrence Philips \<lphilips at verity dot com&gt;. It is described in ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>        The input string.
  <info>int</info>     <strong>$max_phonemes</strong>  This parameter restricts the returned metaphone key to  <strong>$max_phonemes</strong>
                         characters in length. However, the resulting phonemes are always
                         transcribed completely, so the resulting string length may be slightly
                         longer than <strong>$max_phonemes</strong>. The default value of <return>0</return> means no restriction.

<comment>Return:</comment>
  <info>string</info>  Returns the metaphone key as a string.


id: method_exists
type: function
doc:
<comment>Description:</comment>
  Checks if the class method exists
  
  Checks if the class method exists in the given <strong>$object_or_class</strong>.

<comment>Param:</comment>
  <info>object|string</info>  <strong>$object_or_class</strong>  An object instance or a class name
  <info>string</info>         <strong>$method</strong>           The method name

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the method given by <strong>$method</strong> has been defined for the given <strong>$object_or_class</strong>,
        <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>function_exists()</strong>
   * <strong>is_callable()</strong>
   * <strong>class_exists()</strong>


id: mhash
type: function
doc:
<comment>Description:</comment>
  Computes hash
  
  <strong>mhash()</strong> applies a hash function specified by <strong>$algo</strong> to the <strong>$data</strong>.

<comment>Param:</comment>
  <info>int</info>          <strong>$algo</strong>  The hash ID. One of the <info>MHASH_hashname</info> constants.
  <info>string</info>       <strong>$data</strong>  The user input, as a string.
  <info>string|null</info>  <strong>$key</strong>   If specified, the function will return the resulting HMAC instead. HMAC is
                      keyed hashing for message authentication, or simply a message digest that
                      depends on the specified key. Not all algorithms  supported in mhash can be
                      used in HMAC mode.

<comment>Return:</comment>
  <info>string|false</info>  Returns the resulting hash (also called digest) or HMAC as a string, or <info>false</info> on
                error.


id: mhash_count
type: function
doc:
<comment>Description:</comment>
  Gets the highest available hash ID
  
  Gets the highest available hash ID.

<comment>Return:</comment>
  <info>int</info>  Returns the highest available hash ID. Hashes are numbered from 0 to this hash ID.


id: mhash_get_block_size
type: function
doc:
<comment>Description:</comment>
  Gets the block size of the specified hash
  
  Gets the size of a block of the specified <strong>$algo</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$algo</strong>  The hash ID. One of the <info>MHASH_hashname</info> constants.

<comment>Return:</comment>
  <info>int|false</info>  Returns the size in bytes or <info>false</info>, if the <strong>$algo</strong> does not exist.


id: mhash_get_hash_name
type: function
doc:
<comment>Description:</comment>
  Gets the name of the specified hash
  
  Gets the name of the specified <strong>$algo</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$algo</strong>  The hash ID. One of the <info>MHASH_hashname</info> constants.

<comment>Return:</comment>
  <info>string|false</info>  Returns the name of the hash or <info>false</info>, if the hash does not exist.


id: mhash_keygen_s2k
type: function
doc:
<comment>Description:</comment>
  Generates a key
  
  Generates a key according to the given <strong>$algo</strong>, using an user provided <strong>$password</strong>.
  
  This is the Salted S2K algorithm as specified in the OpenPGP document (RFC 2440).
  
  Keep in mind that user supplied passwords are not really suitable to be used as keys in
  cryptographic algorithms, since users normally choose keys they can write on keyboard. These
  passwords use only 6 to 7 bits per character (or less). It is highly recommended to use some kind
  of transformation (like this function) to the user supplied key.

<comment>Param:</comment>
  <info>int</info>     <strong>$algo</strong>      The hash ID used to create the key. One of the <info>MHASH_hashname</info> constants.
  <info>string</info>  <strong>$password</strong>  An user supplied password.
  <info>string</info>  <strong>$salt</strong>      Must be different and random enough for every key you generate in order to
                     create different keys. Because <strong>$salt</strong> must be known when you check the keys, it
                     is a good idea to append the key to it. Salt has a fixed length of 8 bytes and
                     will be padded with zeros if you supply less bytes.
  <info>int</info>     <strong>$length</strong>    The key length, in bytes.

<comment>Return:</comment>
  <info>string|false</info>  Returns the generated key as a string, or <info>false</info> on error.


id: microtime
type: function
doc:
<comment>Description:</comment>
  Return current Unix timestamp with microseconds
  
  <strong>microtime()</strong> returns the current Unix timestamp with microseconds. This function is only available
  on operating systems that support the gettimeofday() system call.
  
  For performance measurements, using <strong>hrtime()</strong> is recommended.

<comment>Param:</comment>
  <info>bool</info>  <strong>$as_float</strong>  If used and set to <info>true</info>, <strong>microtime()</strong> will return a <info>float</info> instead of a <info>string</info>, as
                   described in the return values section below.

<comment>Return:</comment>
  <info>string|float</info>  By default, <strong>microtime()</strong> returns a <info>string</info> in the form "msec sec", where <return>sec</return> is the
                number of seconds  since the Unix epoch (0:00:00 January 1,1970 GMT), and <return>msec</return>
                measures microseconds that have elapsed since <return>sec</return>  and is also expressed in seconds
                as a decimal fraction.
                
                If <strong>$as_float</strong> is set to <info>true</info>, then <strong>microtime()</strong> returns a <info>float</info>, which represents the
                current time in seconds since the Unix epoch accurate to the nearest microsecond.

<comment>See Also:</comment>
   * <strong>time()</strong>
   * <strong>hrtime()</strong>


id: mime_content_type
type: function
doc:
<comment>Description:</comment>
  Detect MIME Content-type for a file
  
  Returns the MIME content type for a file as determined by using information from the magic.mime
  file.

<comment>Param:</comment>
  <info>resource|string</info>  <strong>$filename</strong>  Path to the tested file.

<comment>Return:</comment>
  <info>string|false</info>  Returns the content type in MIME format, like  <return>text/plain</return> or
                <return>application/octet-stream</return>, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>finfo_file()</strong>
   * <strong>finfo_buffer()</strong>


id: min
type: function
doc:
<comment>Description:</comment>
  Find lowest value
  
  Alternative signature (not supported with named arguments):
  
  If the first and only parameter is an array, <strong>min()</strong> returns the lowest value in that array. If at
  least two parameters are  provided, <strong>min()</strong> returns the smallest of these values.
  
  Values of different types will be compared using the  standard comparison rules. For instance, a
  non-numeric <info>string</info> will be compared to an <info>int</info> as though it were <return>0</return>, but multiple non-numeric <info>string</info>
  values will be compared alphanumerically. The actual value returned will be of the original type
  with no conversion applied.
  
  Be careful when passing arguments of different types because <strong>min()</strong> can produce unpredictable
  results.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>        Any comparable value.
  <info>mixed</info>  <strong>$values</strong>       Any comparable values.
  <info>array</info>  <strong>$value_array</strong>  An array containing the values.

<comment>Return:</comment>
  <info>mixed</info>  <strong>min()</strong> returns the parameter value considered "lowest" according to standard comparisons. If
         multiple values of different types evaluate as equal (e.g. <return>0</return> and <return>'abc'</return>) the first provided
         to the function will be returned.

<comment>See Also:</comment>
   * <strong>max()</strong>
   * <strong>count()</strong>


id: mkdir
type: function
doc:
<comment>Description:</comment>
  Makes directory
  
  Attempts to create the directory specified by <strong>$directory</strong>.

<comment>Param:</comment>
  <info>string</info>         <strong>$directory</strong>    The directory path. A URL can be used as a
                               filename with this function if the fopen wrappers have been enabled.
                               See <strong>fopen()</strong> for more details on how to specify the
                               filename. See the  for links to information
                               about what abilities the various wrappers have, notes on their usage,
                               and information on any predefined variables they may
                               provide.
                               
                               A URL can be used as a
                               filename with this function if the fopen wrappers have been enabled.
                               See <strong>fopen()</strong> for more details on how to specify the
                               filename. See the  for links to information
                               about what abilities the various wrappers have, notes on their usage,
                               and information on any predefined variables they may
                               provide.
  <info>int</info>            <strong>$permissions</strong>  The permissions are 0777 by default, which means the widest possible
                               access. For more information on permissions, read the details on the
                               <strong>chmod()</strong> page.
                               
                               <strong>$permissions</strong> is ignored on Windows.
                               
                               Note that you probably want to specify the <strong>$permissions</strong> as an octal
                               number, which means it should have a leading zero. The <strong>$permissions</strong>
                               is also modified by the current umask, which you can change using
                               <strong>umask()</strong>.
  <info>bool</info>           <strong>$recursive</strong>    If <info>true</info>, then any parent directories to the <strong>$directory</strong> specified will
                               also be created, with the same permissions.
  <info>resource|null</info>  <strong>$context</strong>      A context stream
                               <info>resource</info>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
        
        If the directory to be created already exists, that is considered an error and <info>false</info> will
        still be returned.  Use <strong>is_dir()</strong> or <strong>file_exists()</strong> to check if the directory already exists
        before trying to create it.

<comment>See Also:</comment>
   * <strong>is_dir()</strong>
   * <strong>rmdir()</strong>
   * <strong>umask()</strong>


id: mktime
type: function
doc:
<comment>Description:</comment>
  Get Unix timestamp for a date
  
  Returns the Unix timestamp corresponding to the arguments given. This timestamp is a long integer
  containing the number of seconds between the Unix Epoch (January 1 1970 00:00:00 GMT) and the time
  specified.
  
  Any optional arguments omitted or <info>null</info> will be set to the current value according to the local
  date and time.
  
  Please note that the ordering of arguments is in an odd order: <strong>$month</strong>, <strong>$day</strong>, <strong>$year</strong>, and not in the
  more reasonable order of <strong>$year</strong>, <strong>$month</strong>, <strong>$day</strong>.
  
  Calling <strong>mktime()</strong> without arguments is not supported, and will result in an <class>ArgumentCountError</class>.
  <strong>time()</strong> can be used to get the current timestamp.

<comment>Param:</comment>
  <info>int</info>       <strong>$hour</strong>    The number of the hour relative to the start of the day determined by <strong>$month</strong>,
                     <strong>$day</strong> and <strong>$year</strong>. Negative values reference the hour before midnight of the day
                     in question. Values greater than 23 reference the appropriate hour in the
                     following day(s).
  <info>int|null</info>  <strong>$minute</strong>  The number of the minute relative to the start of the <strong>$hour</strong>. Negative values
                     reference the minute in the previous hour. Values greater than 59 reference the
                     appropriate minute in the following hour(s).
  <info>int|null</info>  <strong>$second</strong>  The number of seconds relative to the start of the <strong>$minute</strong>. Negative values
                     reference the second in the previous minute. Values greater than 59 reference
                     the appropriate second in the following minute(s).
  <info>int|null</info>  <strong>$month</strong>   The number of the month relative to the end of the previous year. Values 1 to
                     12 reference the normal calendar months of the year in question. Values less
                     than 1 (including negative values) reference the months in the previous year in
                     reverse order, so 0 is December, -1 is November, etc. Values greater than 12
                     reference the appropriate month in the following year(s).
  <info>int|null</info>  <strong>$day</strong>     The number of the day relative to the end of the previous month. Values 1 to
                     28, 29, 30 or 31 (depending upon the month) reference the normal days in the
                     relevant month. Values less than 1 (including negative values) reference the
                     days in the previous month, so 0 is the last day of the previous month, -1 is
                     the day before that, etc. Values greater than the number of days in the
                     relevant month reference the appropriate day in the following month(s).
  <info>int|null</info>  <strong>$year</strong>    The number of the year, may be a two or four digit value, with values between
                     0-69 mapping to 2000-2069 and 70-100 to 1970-2000. On systems where time_t is a
                     32bit signed integer, as most common today, the valid range for <strong>$year</strong>  is
                     somewhere between 1901 and 2038.

<comment>Return:</comment>
  <info>int|false</info>  <strong>mktime()</strong> returns the Unix timestamp of the arguments given, or <info>false</info> if the timestamp
             doesn't fit in a PHP integer.

<comment>See Also:</comment>
   * The <class>DateTimeImmutable</class> class
   * <strong>checkdate()</strong>
   * <strong>gmmktime()</strong>
   * <strong>date()</strong>
   * <strong>time()</strong>


id: money_format
type: function
doc:
<comment>Description:</comment>
  Formats a number as a currency string
  
  <strong>money_format()</strong> returns a formatted version of <strong>$number</strong>.  This function wraps the C library function
  <strong>strfmon()</strong>, with the difference that this implementation converts only one number at a time.

<comment>Param:</comment>
  <info>string</info>  <strong>$format</strong>  The format specification consists of the following sequence: a <return>%</return>
                   characteroptional flagsoptional field widthoptional left precisionoptional right
                   precisiona required conversion character
                   
                   a <return>%</return> character
                   
                   optional flags
                   
                   optional field width
                   
                   optional left precision
                   
                   optional right precision
                   
                   a required conversion character
                   
                   One or more of the optional flags below can be used: <return>=</return>f The character <return>=</return> followed
                   by a (single byte) character f to be used as the numeric fill character. The
                   default fill character is space. <return>^</return> Disable the use of grouping characters (as
                   defined by the current locale). <return>+</return> or <return>(</return> Specify the formatting style for positive
                   and negative numbers. If <return>+</return> is used, the locale's equivalent for <return>+</return> and <return>-</return> will be
                   used. If <return>(</return> is used, negative amounts are enclosed in parenthesis. If no
                   specification is given, the default is <return>+</return>. <return>!</return> Suppress the currency symbol from the
                   output string. <return>-</return> If present, it will make all fields left-justified (padded to
                   the right), as opposed to the default which is for the fields to be
                   right-justified (padded to the left).
                   
                   The character <return>=</return> followed by a (single byte) character f to be used as the numeric
                   fill character. The default fill character is space.
                   
                   Disable the use of grouping characters (as defined by the current locale).
                   
                   Specify the formatting style for positive and negative numbers. If <return>+</return> is used, the
                   locale's equivalent for <return>+</return> and <return>-</return> will be used. If <return>(</return> is used, negative amounts are
                   enclosed in parenthesis. If no specification is given, the default is <return>+</return>.
                   
                   Suppress the currency symbol from the output string.
                   
                   If present, it will make all fields left-justified (padded to the right), as
                   opposed to the default which is for the fields to be right-justified (padded to
                   the left).
                   
                   w A decimal digit string specifying a minimum field width. Field will be
                   right-justified unless the flag <return>-</return> is used. Default value is 0 (zero).
                   
                   A decimal digit string specifying a minimum field width. Field will be
                   right-justified unless the flag <return>-</return> is used. Default value is 0 (zero).
                   
                   <return>#</return>n The maximum number of digits (n) expected to the left of the decimal character
                   (e.g. the decimal point). It is used usually to keep formatted output aligned in
                   the same columns, using the fill character if the number of digits is less than
                   n. If the number of actual digits is bigger than n, then this specification is
                   ignored.  If grouping has not been suppressed using the <return>^</return> flag, grouping
                   separators will be inserted before the fill characters (if any) are added.
                   Grouping separators will not be applied to fill characters, even if the fill
                   character is a digit.  To ensure alignment, any characters appearing before or
                   after the number in the formatted output such as currency or sign symbols are
                   padded as necessary with space characters to make their positive and negative
                   formats an equal length.
                   
                   The maximum number of digits (n) expected to the left of the decimal character
                   (e.g. the decimal point). It is used usually to keep formatted output aligned in
                   the same columns, using the fill character if the number of digits is less than
                   n. If the number of actual digits is bigger than n, then this specification is
                   ignored.
                   
                   If grouping has not been suppressed using the <return>^</return> flag, grouping separators will be
                   inserted before the fill characters (if any) are added. Grouping separators will
                   not be applied to fill characters, even if the fill character is a digit.
                   
                   To ensure alignment, any characters appearing before or after the number in the
                   formatted output such as currency or sign symbols are padded as necessary with
                   space characters to make their positive and negative formats an equal length.
                   
                   <return>.</return>p A period followed by the number of digits (p) after the decimal character. If
                   the value of p is 0 (zero), the decimal character and the digits to its right
                   will be omitted. If no right precision is included, the default will dictated by
                   the current locale in use. The amount being formatted is rounded to the specified
                   number of digits prior to formatting.
                   
                   A period followed by the number of digits (p) after the decimal character. If the
                   value of p is 0 (zero), the decimal character and the digits to its right will be
                   omitted. If no right precision is included, the default will dictated by the
                   current locale in use. The amount being formatted is rounded to the specified
                   number of digits prior to formatting.
                   
                   <return>i</return> The number is formatted according to the locale's international currency format
                   (e.g. for the USA locale: USD 1,234.56). <return>n</return> The number is formatted according to
                   the locale's national currency format (e.g. for the de_DE locale: EU1.234,56). <return>%</return>
                   Returns the <return>%</return> character.
                   
                   The number is formatted according to the locale's international currency format
                   (e.g. for the USA locale: USD 1,234.56).
                   
                   The number is formatted according to the locale's national currency format (e.g.
                   for the de_DE locale: EU1.234,56).
                   
                   Returns the <return>%</return> character.
  <info>float</info>   <strong>$number</strong>  The number to be formatted.

<comment>Return:</comment>
  <info>string</info>  Returns the formatted string. Characters before and after the formatting string will be
          returned unchanged. Non-numeric <strong>$number</strong> causes returning <info>null</info> and emitting <info>E_WARNING</info>.

<comment>See Also:</comment>
   * <strong>setlocale()</strong>
   * <strong>sscanf()</strong>
   * <strong>sprintf()</strong>
   * <strong>printf()</strong>
   * <strong>number_format()</strong>


id: move_uploaded_file
type: function
doc:
<comment>Description:</comment>
  Moves an uploaded file to a new location
  
  This function checks to ensure that the file designated by <strong>$from</strong> is a valid upload file (meaning
  that it was uploaded via PHP's HTTP POST upload mechanism). If the file is valid, it will be moved
  to the filename given by <strong>$to</strong>.
  
  This sort of check is especially important if there is any chance that anything done with uploaded
  files could reveal their contents to the user, or even to other users on the same system.

<comment>Param:</comment>
  <info>string</info>  <strong>$from</strong>  The filename of the uploaded file.
  <info>string</info>  <strong>$to</strong>    The destination of the moved file.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success.
        
        If <strong>$from</strong> is not a valid upload file, then no action will occur, and <strong>move_uploaded_file()</strong>
        will return <info>false</info>.
        
        If <strong>$from</strong> is a valid upload file, but cannot be moved for some reason, no action will occur,
        and <strong>move_uploaded_file()</strong> will return <info>false</info>. Additionally, a warning will be issued.

<comment>See Also:</comment>
   * <strong>is_uploaded_file()</strong>
   * <strong>rename()</strong>
   * See Handling file uploads for a simple usage example


id: mqseries_back
type: function
doc:
<comment>Description:</comment>
  MQSeries MQBACK
  
  The <strong>mqseries_back()</strong> (MQBACK) call indicates to the queue manager that all the message gets and
  puts that have occurred since the last syncpoint are to be backed out. Messages put as part of a
  unit of work are deleted; messages retrieved as part of a unit of work are reinstated on the
  queue.
  
  Using <strong>mqseries_back()</strong> only works in conjunction with <strong>mqseries_begin()</strong> and only function when
  connecting directly to a Queueu manager. Not via the mqclient interface.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_begin()</strong>


id: mqseries_begin
type: function
doc:
<comment>Description:</comment>
  MQseries MQBEGIN
  
  The <strong>mqseries_begin()</strong> (MQBEGIN) call begins a unit of work that is coordinated by the queue
  manager, and that may involve external resource managers.
  
  Using <strong>mqseries_begin()</strong> starts the unit of work. Either <strong>mqseries_back()</strong> or <strong>mqseries_cmit()</strong> ends the
  unit of work.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_back()</strong>
   * <strong>mqseries_cmit()</strong>


id: mqseries_close
type: function
doc:
<comment>Description:</comment>
  MQSeries MQCLOSE
  
  The <strong>mqseries_close()</strong> (MQCLOSE) call relinquishes access to an object, and is the inverse of the
  <strong>mqseries_open()</strong> (MQOPEN) call.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info></info>          <strong>$hObj</strong>      Object handle.
                       
                       This handle represents the object to be used.
  <info>int</info>       <strong>$options</strong>   
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_open()</strong>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>


id: mqseries_cmit
type: function
doc:
<comment>Description:</comment>
  MQSeries MQCMIT
  
  The <strong>mqseries_cmit()</strong> (MQCMIT) call indicates to the queue manager that the application has reached
  a syncpoint, and that all of the message gets and puts that have occurred since the last syncpoint
  are to be made permanent. Messages put as part of a unit of work are made available to other
  applications; messages retrieved as part of a unit of work are deleted.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_begin()</strong>
   * <strong>mqseries_back()</strong>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>


id: mqseries_conn
type: function
doc:
<comment>Description:</comment>
  MQSeries MQCONN
  
  The <strong>mqseries_conn()</strong> (MQCONN) call connects an application program to a queue manager. It provides
  a queue manager connection handle, which is used by the application on subsequent message queuing
  calls.

<comment>Param:</comment>
  <info>string</info>    <strong>$qManagerName</strong>  Name of queue manager.
                           
                           Name of the queue manager the application wishes to connect.
  <info></info>          <strong>$hConn</strong>         Connection handle.
                           
                           This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>      Completion code.
  <info>resource</info>  <strong>$reason</strong>        Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_disc()</strong>


id: mqseries_connx
type: function
doc:
<comment>Description:</comment>
  MQSeries MQCONNX
  
  The <strong>mqseries_connx()</strong> (MQCONNX) call connects an application program to a queue manager. It
  provides a queue manager connection handle, which is used by the application on subsequent MQ
  calls.
  
  The <strong>mqseries_connx()</strong> call is like the  <strong>mqseries_conn()</strong> (MQCONN) call, except that MQCONNX  allows
  options to be specified to control the way that the call works.

<comment>Param:</comment>
  <info>string</info>    <strong>$qManagerName</strong>  Name of queue manager.
                           
                           Name of the queue manager the application wishes to connect.
  <info></info>          <strong>$connOps</strong>       Options that control the action of function
                           
                           See also the MQCNO structure.
  <info></info>          <strong>$hConn</strong>         Connection handle.
                           
                           This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>      Completion code.
  <info>resource</info>  <strong>$reason</strong>        Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_disc()</strong>


id: mqseries_disc
type: function
doc:
<comment>Description:</comment>
  MQSeries MQDISC
  
  The <strong>mqseries_disc()</strong> (MQDISC) call breaks the connection between the queue manager and the
  application program, and is the inverse of the <strong>mqseries_conn()</strong> (MQCONN) or <strong>mqseries_connx()</strong>
  (MQCONNX) call.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>


id: mqseries_get
type: function
doc:
<comment>Description:</comment>
  MQSeries MQGET
  
  The <strong>mqseries_get()</strong> (MQGET) call retrieves a message from a local queue that has been opened using
  the <strong>mqseries_open()</strong> (MQOPEN) call

<comment>Param:</comment>
  <info>resource</info>  <strong>$hConn</strong>         Connection handle.
                           
                           This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$hObj</strong>          Object handle.
                           
                           This handle represents the object to be used.
  <info>array</info>     <strong>$md</strong>            Message descriptor (MQMD).
  <info>array</info>     <strong>$gmo</strong>           Get message options (MQGMO).
  <info>int</info>       <strong>$bufferLength</strong>  Expected length of the result buffer
  <info>string</info>    <strong>$msg</strong>           Buffer holding the message that was retrieved from the object.
  <info>int</info>       <strong>$data_length</strong>   Actual buffer length
  <info>resource</info>  <strong>$compCode</strong>      Completion code.
  <info>resource</info>  <strong>$reason</strong>        Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_open()</strong>
   * <strong>mqseries_put()</strong>


id: mqseries_inq
type: function
doc:
<comment>Description:</comment>
  MQSeries MQINQ
  
  The <strong>mqseries_inq()</strong> (MQINQ) call returns an array of integers and a set of character strings
  containing the attributes of an object.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>           Connection handle.
                             
                             This handle represents the connection to the queue manager.
  <info></info>          <strong>$hObj</strong>            Object handle.
                             
                             This handle represents the object to be used.
  <info>int</info>       <strong>$selectorCount</strong>   Count of selectors.
  <info>array</info>     <strong>$selectors</strong>       Array of attribute selectors.
  <info></info>          <strong>$intAttrLength</strong>   Count of integer attributes.
  <info>resource</info>  <strong>$intAttr</strong>         Array of integer attributes.
  <info>int</info>       <strong>$charAttrLength</strong>  Length of character attributes buffer.
  <info>resource</info>  <strong>$charAttr</strong>        Character attributes.
  <info>resource</info>  <strong>$compCode</strong>        Completion code.
  <info>resource</info>  <strong>$reason</strong>          Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_open()</strong>


id: mqseries_open
type: function
doc:
<comment>Description:</comment>
  MQSeries MQOPEN
  
  The <strong>mqseries_open()</strong> (MQOPEN) call establishes access to an object.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>array</info>     <strong>$objDesc</strong>   Object descriptor. (MQOD)
  <info></info>          <strong>$options</strong>   Options that control the action of the function.
  <info></info>          <strong>$hObj</strong>      Object handle.
                       
                       This handle represents the object to be used.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_close()</strong>


id: mqseries_put
type: function
doc:
<comment>Description:</comment>
  MQSeries MQPUT
  
  The <strong>mqseries_put()</strong> (MQPUT) call puts a message on a queue or distribution list. The queue or
  distribution list must already be open.

<comment>Param:</comment>
  <info>resource</info>  <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$hObj</strong>      Object handle.
                       
                       This handle represents the object to be used.
  <info>array</info>     <strong>$md</strong>        Message descriptor (MQMD).
  <info>array</info>     <strong>$pmo</strong>       Put message options (MQPMO).
  <info>string</info>    <strong>$message</strong>   The actual message to put onto the queue.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_open()</strong>
   * <strong>mqseries_get()</strong>


id: mqseries_put1
type: function
doc:
<comment>Description:</comment>
  MQSeries MQPUT1
  
  The <strong>mqseries_put1()</strong> (MQPUT1) call puts one message on a queue. The queue need not be open.
  
  You can use both the <strong>mqseries_put()</strong> and <strong>mqseries_put1()</strong> calls to put messages on a queue; which
  call to use depends on the circumstances. Use the <strong>mqseries_put()</strong> (MQPUT) call to place multiple
  messages on the same queue. Use the <strong>mqseries_put1()</strong> (MQPUT1) call to put only one message on a
  queue. This call encapsulates the MQOPEN, MQPUT, and MQCLOSE calls into a single call, minimizing
  the number of calls that must be issued.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$objDesc</strong>   Object descriptor. (MQOD)
                       
                       This is a structure which identifies the queue to which the message is added.
  <info>resource</info>  <strong>$msgDesc</strong>   Message descriptor (MQMD).
  <info>resource</info>  <strong>$pmo</strong>       Put message options (MQPMO).
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_open()</strong>
   * <strong>mqseries_get()</strong>


id: mqseries_set
type: function
doc:
<comment>Description:</comment>
  MQSeries MQSET
  
  The <strong>mqseries_set()</strong> (MQSET) call is used to change the attributes of an object represented by a
  handle. The object must be a queue.

<comment>Param:</comment>
  <info>resource</info>  <strong>$hConn</strong>           Connection handle.
                             
                             This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$hObj</strong>            Object handle.
                             
                             This handle represents the object to be used.
  <info>int</info>       <strong>$selectorCount</strong>   Count of selectors.
  <info>array</info>     <strong>$selectors</strong>       Array of attribute selectors.
  <info>int</info>       <strong>$intAttrCount</strong>    Count of integer attributes.
  <info>array</info>     <strong>$intAttrs</strong>        Array of integer attributes.
  <info>int</info>       <strong>$charAttrLength</strong>  Length of character attributes buffer.
  <info>array</info>     <strong>$charAttrs</strong>       Character attributes.
  <info>resource</info>  <strong>$compCode</strong>        Completion code.
  <info>resource</info>  <strong>$reason</strong>          Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mqseries_inq()</strong>


id: mqseries_strerror
type: function
doc:
<comment>Description:</comment>
  Returns the error message corresponding to a result code (MQRC)
  
  <strong>mqseries_strerror()</strong> returns the message that correspond to the reason result code.

<comment>Param:</comment>
  <info>int</info>  <strong>$reason</strong>  Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>string</info>  string representation of the reason code message.


id: msg_get_queue
type: function
doc:
<comment>Description:</comment>
  Create or attach to a message queue
  
  <strong>msg_get_queue()</strong> returns an id that can be used to access the System V message queue with the given
  <strong>$key</strong>. The first call creates the message queue with the optional <strong>$permissions</strong>. A second call to
  <strong>msg_get_queue()</strong> for the same <strong>$key</strong> will return a different message queue identifier, but both
  identifiers access the same underlying message queue.

<comment>Param:</comment>
  <info>int</info>  <strong>$key</strong>          Message queue numeric ID
  <info>int</info>  <strong>$permissions</strong>  Queue permissions. Default to 0666. If the message queue already exists, the
                     <strong>$permissions</strong> will be ignored.

<comment>Return:</comment>
  <info>SysvMessageQueue|false</info>  Returns <class>SysvMessageQueue</class> instance that can be used to access the System V
                          message queue, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_send()</strong>
   * <strong>msg_stat_queue()</strong>
   * <strong>msg_set_queue()</strong>


id: msg_queue_exists
type: function
doc:
<comment>Description:</comment>
  Check whether a message queue exists
  
  Checks whether the message queue <strong>$key</strong> exists.

<comment>Param:</comment>
  <info>int</info>  <strong>$key</strong>  Queue key.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_stat_queue()</strong>


id: msg_receive
type: function
doc:
<comment>Description:</comment>
  Receive a message from a message queue
  
  <strong>msg_receive()</strong> will receive the first message from the specified <strong>$queue</strong> of the type specified by
  <strong>$desired_message_type</strong>.

<comment>Param:</comment>
  <info>SysvMessageQueue</info>  <strong>$queue</strong>                  The message queue.
  <info>int</info>               <strong>$desired_message_type</strong>   If <strong>$desired_message_type</strong> is 0, the message from the
                                            front of the queue is returned. If <strong>$desired_message_type</strong>
                                            is greater than 0, then the first message of that type
                                            is returned. If <strong>$desired_message_type</strong> is less than 0,
                                            the first message on the queue with a type less than or
                                            equal to the absolute value of <strong>$desired_message_type</strong>
                                            will be read. If no messages match the criteria, your
                                            script will wait until a suitable message arrives on the
                                            queue.  You can prevent the script from blocking by
                                            specifying <info>MSG_IPC_NOWAIT</info> in the <strong>$flags</strong> parameter.
  <info>int</info>               <strong>$received_message_type</strong>  The type of the message that was received will be stored
                                            in this parameter.
  <info>int</info>               <strong>$max_message_size</strong>       The maximum size of message to be accepted is specified
                                            by the <strong>$max_message_size</strong>; if the message in the queue is
                                            larger than this size the function will fail (unless you
                                            set <strong>$flags</strong> as described below).
  <info>mixed</info>             <strong>$message</strong>                The received message will be stored in <strong>$message</strong>, unless
                                            there were errors receiving the message.
  <info>bool</info>              <strong>$unserialize</strong>            If set to <info>true</info>, the message is treated as though it was
                                            serialized using the same mechanism as the session
                                            module. The message will be unserialized and then
                                            returned to your script. This allows you to easily
                                            receive arrays or complex object structures from other
                                            PHP scripts, or if you are using the WDDX serializer,
                                            from any WDDX compatible source.
                                            
                                            If <strong>$unserialize</strong> is <info>false</info>, the message will be returned
                                            as a binary-safe string.
  <info>int</info>               <strong>$flags</strong>                  The optional <strong>$flags</strong> allows you to pass flags to the
                                            low-level msgrcv system call.  It defaults to 0, but you
                                            may specify one or more of the following values (by
                                            adding or ORing them together). Flag values for
                                            msg_receive<info>MSG_IPC_NOWAIT</info>If there are no messages of the
                                            <strong>$desired_message_type</strong>, return immediately and do not
                                            wait.  The function will fail and return an integer
                                            value corresponding to <info>MSG_ENOMSG</info>. <info>MSG_EXCEPT</info>Using this
                                            flag in combination with a <strong>$desired_message_type</strong> greater
                                            than 0 will cause the function to receive the first
                                            message that is not equal to
                                            <strong>$desired_message_type</strong>.<info>MSG_NOERROR</info> If the message is
                                            longer than <strong>$max_message_size</strong>, setting this flag will
                                            truncate the message to <strong>$max_message_size</strong> and will not
                                            signal an error.
  <info>int</info>               <strong>$error_code</strong>             If the function fails, the optional <strong>$error_code</strong> will be
                                            set to the value of the system errno variable.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
        
        Upon successful completion the message queue data structure is updated as follows: <return>msg_lrpid</return>
        is set to the process-ID of the calling process, <return>msg_qnum</return> is decremented by 1 and <return>msg_rtime</return>
        is set to the current time.

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_send()</strong>
   * <strong>msg_stat_queue()</strong>
   * <strong>msg_set_queue()</strong>


id: msg_remove_queue
type: function
doc:
<comment>Description:</comment>
  Destroy a message queue
  
  <strong>msg_remove_queue()</strong> destroys the message queue specified by the <strong>$queue</strong>.  Only use this function
  when all processes have finished working with the message queue and you need to release the system
  resources held by it.

<comment>Param:</comment>
  <info>SysvMessageQueue</info>  <strong>$queue</strong>  The message queue.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>msg_get_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_stat_queue()</strong>
   * <strong>msg_set_queue()</strong>


id: msg_send
type: function
doc:
<comment>Description:</comment>
  Send a message to a message queue
  
  <strong>msg_send()</strong> sends a <strong>$message</strong> of type <strong>$message_type</strong> (which MUST be greater than 0) to the message
  queue specified by <strong>$queue</strong>.

<comment>Param:</comment>
  <info>SysvMessageQueue</info>       <strong>$queue</strong>         The message queue.
  <info>int</info>                    <strong>$message_type</strong>  The type of the message (MUST be greater than 0)
  <info>string|int|float|bool</info>  <strong>$message</strong>       The body of the message.
                                        
                                        If <strong>$serialize</strong> set to <info>false</info> is supplied, MUST be of type:
                                        <info>string</info>, <info>int</info>, <info>float</info>  or <info>bool</info>. In other case a warning will be
                                        issued.
  <info>bool</info>                   <strong>$serialize</strong>     The optional <strong>$serialize</strong> controls how the <strong>$message</strong> is sent.
                                        <strong>$serialize</strong> defaults to <info>true</info> which means that the <strong>$message</strong> is
                                        serialized using the same mechanism as the session module
                                        before being sent to the queue.  This allows complex arrays
                                        and objects to be sent to other PHP scripts, or if you are
                                        using the WDDX serializer, to any WDDX compatible client.
  <info>bool</info>                   <strong>$blocking</strong>      If the message is too large to fit in the queue, your script
                                        will wait until another process reads messages from the
                                        queue and frees enough space for your message to be sent.
                                        This is called blocking; you can prevent blocking by setting
                                        the optional <strong>$blocking</strong> parameter to <info>false</info>, in which case
                                        <strong>msg_send()</strong> will immediately return <info>false</info> if the message is
                                        too big for the queue, and set the optional <strong>$error_code</strong> to
                                        <info>MSG_EAGAIN</info>, indicating that you should try to send your
                                        message again a little later on.
  <info>int</info>                    <strong>$error_code</strong>    If the function fails, the optional errorcode will be set to
                                        the value of the system errno variable.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
        
        Upon successful completion the message queue data structure is updated as follows:
        <strong>$msg_lspid</strong> is set to the process-ID of the calling process, <strong>$msg_qnum</strong> is incremented by 1
        and <strong>$msg_stime</strong> is set to the current time.

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_stat_queue()</strong>
   * <strong>msg_set_queue()</strong>


id: msg_set_queue
type: function
doc:
<comment>Description:</comment>
  Set information in the message queue data structure
  
  <strong>msg_set_queue()</strong> allows you to change the values of the msg_perm.uid, msg_perm.gid, msg_perm.mode
  and msg_qbytes fields of the underlying message queue data structure.
  
  Changing the data structure will require that PHP be running as the same user that created the
  queue, owns the queue (as determined by the existing msg_perm.xxx fields), or be running with root
  privileges. root privileges are required to raise the msg_qbytes values above the system defined
  limit.

<comment>Param:</comment>
  <info>SysvMessageQueue</info>  <strong>$queue</strong>  The message queue.
  <info>array</info>             <strong>$data</strong>   You specify the values you require by setting the value of the keys that
                            you require in the <strong>$data</strong> array.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_stat_queue()</strong>
   * <strong>msg_get_queue()</strong>


id: msg_stat_queue
type: function
doc:
<comment>Description:</comment>
  Returns information from the message queue data structure
  
  <strong>msg_stat_queue()</strong> returns the message queue meta data for the message queue specified by the
  <strong>$queue</strong>. This is useful, for example, to determine which process sent the message that was just
  received.

<comment>Param:</comment>
  <info>SysvMessageQueue</info>  <strong>$queue</strong>  The message queue.

<comment>Return:</comment>
  <info>array|false</info>  On success, the return value is an array whose keys and values have the following
               meanings: Array structure for msg_stat_queue<return>msg_perm.uid</return> The uid of the owner of the
               queue. <return>msg_perm.gid</return> The gid of the owner of the queue. <return>msg_perm.mode</return> The file access
               mode of the queue. <return>msg_stime</return> The time that the last message was sent to the queue.
               <return>msg_rtime</return> The time that the last message was received from the queue. <return>msg_ctime</return> The
               time that the queue was last changed. <return>msg_qnum</return> The number of messages waiting to be
               read from the queue. <return>msg_qbytes</return> The maximum number of bytes allowed in one message
               queue. On Linux, this value may be read and modified via /proc/sys/kernel/msgmnb.
               <return>msg_lspid</return> The pid of the process that sent the last message to the queue. <return>msg_lrpid</return>
               The pid of the process that received the last message from the queue.
               
               Returns <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_get_queue()</strong>
   * <strong>msg_set_queue()</strong>


id: mt_getrandmax
type: function
doc:
<comment>Description:</comment>
  Show largest possible random value
  
  Returns the maximum value that can be returned by a call to <strong>mt_rand()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the maximum random value returned by a call to <strong>mt_rand()</strong> without arguments, which is
       the maximum value that can be used for its <strong>$max</strong> parameter without the result being scaled up
       (and therefore less random).

<comment>See Also:</comment>
   * <strong>mt_rand()</strong>
   * <strong>mt_srand()</strong>
   * <strong>getrandmax()</strong>


id: mt_rand
type: function
doc:
<comment>Description:</comment>
  Generate a random value via the Mersenne Twister Random Number Generator
  
  Many random number generators of older libcs have dubious or unknown characteristics and are slow.
  The <strong>mt_rand()</strong> function is a drop-in replacement for the older <strong>rand()</strong>. It uses a random number
  generator with known characteristics using the Mersenne Twister, which will produce random numbers
  four times faster than what the average libc rand() provides.
  
  If called without the optional <strong>$min</strong>, <strong>$max</strong> arguments <strong>mt_rand()</strong> returns a pseudo-random value
  between 0 and <strong>mt_getrandmax()</strong>.  If you want a random number between 5 and 15 (inclusive), for
  example, use <return>mt_rand(5, 15)</return>.
  
  This function does not generate cryptographically secure values, and must not be used for
  cryptographic purposes, or purposes that require returned values to be unguessable.
  
  If cryptographically secure randomness is required, the <class>Random\Randomizer</class> may be used with the
  <class>Random\Engine\Secure</class> engine. For simple use cases, the <strong>random_int()</strong> and <strong>random_bytes()</strong> functions
  provide a convenient and secure API that is backed by the operating system’s CSPRNG.

<comment>Param:</comment>
  <info>int</info>  <strong>$min</strong>  Optional lowest value to be returned (default: 0)
  <info>int</info>  <strong>$max</strong>  Optional highest value to be returned (default: <strong>mt_getrandmax()</strong>)

<comment>Return:</comment>
  <info>int</info>  A random integer value between <strong>$min</strong> (or 0) and <strong>$max</strong> (or <strong>mt_getrandmax()</strong>, inclusive), or <info>false</info>
       if <strong>$max</strong> is less than <strong>$min</strong>.

<comment>See Also:</comment>
   * <strong>mt_srand()</strong>
   * <strong>mt_getrandmax()</strong>
   * <strong>random_int()</strong>
   * <strong>random_bytes()</strong>


id: mt_srand
type: function
doc:
<comment>Description:</comment>
  Seeds the Mersenne Twister Random Number Generator
  
  Seeds the random number generator with <strong>$seed</strong> or with a random value if no <strong>$seed</strong> is given.
  
  There is no need
  to seed the random number generator with <strong>srand()</strong> or
  <strong>mt_srand()</strong> as this is done automatically.
  
  Because the Mt19937 (“Mersenne Twister”) engine accepts only a single 32 bit integer as the seed,
  the number of possible random sequences is limited to just 232 (i.e. 4,294,967,296), despite
  Mt19937’s huge period of 219937-1.
  
  When relying on either implicit or explicit random seeding, duplications will appear much earlier.
  Duplicated seeds are expected with 50% probability after less than 80,000 randomly generated seeds
  according to the birthday problem. A 10% probability of a duplicated seed happens after randomly
  generating roughly 30,000 seeds.
  
  This makes Mt19937 unsuitable for applications where duplicated sequences must not happen with
  more than a negligible probability. If reproducible seeding is required, both the
  <class>Random\Engine\Xoshiro256StarStar</class> and <class>Random\Engine\PcgOneseq128XslRr64</class> engines support much larger
  seeds that are unlikely to collide randomly. If reproducibility is not required, the
  <class>Random\Engine\Secure</class> engine provides cryptographically secure randomness.

<comment>Param:</comment>
  <info>int</info>  <strong>$seed</strong>  An arbitrary <info>int</info> seed value.
  <info>int</info>  <strong>$mode</strong>  Use one of the following constants to specify the implementation of the algorithm to
              use. <info>MT_RAND_MT19937</info>: The correct Mt19937 implementation, available as of PHP 7.1.0.
              <info>MT_RAND_PHP</info> Uses an incorrect Mersenne Twister implementation which was used as the
              default up till PHP 7.1.0. This mode is available for backward compatibility.
              
              This feature has been
              DEPRECATED as of PHP 8.3.0. Relying on this feature
              is highly discouraged.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mt_rand()</strong>
   * <strong>mt_getrandmax()</strong>
   * <strong>srand()</strong>


id: mysql_affected_rows
type: function
doc:
<comment>Description:</comment>
  Get number of affected rows in previous MySQL operation
  
  Get the number of affected rows by the last INSERT, UPDATE, REPLACE  or DELETE query associated
  with <strong>$link_identifier</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>int</info>  Returns the number of affected rows on success, and -1 if the last query failed.
       
       If the last query was a DELETE query with no WHERE clause, all of the records will have been
       deleted from the table but this function will return zero with MySQL versions prior to 4.1.2.
       
       When using UPDATE, MySQL will not update columns where the new value is the  same as the old
       value.  This creates the possibility that  <strong>mysql_affected_rows()</strong> may not actually equal the
       number  of rows matched, only the number of rows that were literally affected by  the query.
       
       The REPLACE statement first deletes the record with the same primary key  and then inserts
       the new record. This function returns the number of  deleted records plus the number of
       inserted records.
       
       In the case of "INSERT ... ON DUPLICATE KEY UPDATE" queries, the  return value will be <return>1</return> if
       an insert was performed,  or <return>2</return> for an update of an existing row.

<comment>See Also:</comment>
   * <strong>mysql_num_rows()</strong>
   * <strong>mysql_info()</strong>


id: mysql_client_encoding
type: function
doc:
<comment>Description:</comment>
  Returns the name of the character set
  
  Retrieves the <return>character_set</return> variable from MySQL.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>string</info>  Returns the default character set name for the current connection.

<comment>See Also:</comment>
   * <strong>mysql_set_charset()</strong>
   * <strong>mysql_real_escape_string()</strong>


id: mysql_close
type: function
doc:
<comment>Description:</comment>
  Close MySQL connection
  
  <strong>mysql_close()</strong> closes the non-persistent connection to  the MySQL server that's associated with the
  specified link identifier. If  <strong>$link_identifier</strong> isn't specified, the last opened  link is used.
  
  Open non-persistent MySQL connections and result sets are automatically destroyed when a
  PHP script finishes its execution. So, while explicitly closing open
  connections and freeing result sets is optional, doing so is recommended.
  This will immediately return resources to PHP and MySQL, which can
  improve performance. For related information, see
  freeing resources

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no connection is found or
                              established, an <info>E_WARNING</info> level error is
                              generated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_connect()</strong>
   * <strong>mysql_free_result()</strong>


id: mysql_connect
type: function
doc:
<comment>Description:</comment>
  Open a connection to a MySQL Server
  
  Opens or reuses a connection to a MySQL server.

<comment>Param:</comment>
  <info>string</info>  <strong>$server</strong>        The MySQL server. It can also include a port number. e.g.  "hostname:port"
                         or a path to a local socket e.g. ":/path/to/socket" for  the localhost.
                         
                         If the PHP directive  mysql.default_host is undefined (default), then the
                         default  value is 'localhost:3306'. In SQL safe mode, this parameter is
                         ignored and value 'localhost:3306' is always used.
  <info>string</info>  <strong>$username</strong>      The username. Default value is defined by mysql.default_user. In SQL safe
                         mode, this parameter is ignored and the name of the user that owns the
                         server process is used.
  <info>string</info>  <strong>$password</strong>      The password. Default value is defined by mysql.default_password. In SQL
                         safe mode, this parameter is ignored and empty password is used.
  <info>bool</info>    <strong>$new_link</strong>      If a second call is made to <strong>mysql_connect()</strong> with the same arguments, no new
                         link will be established, but instead, the link identifier of the already
                         opened link will be returned. The <strong>$new_link</strong> parameter modifies this
                         behavior and makes <strong>mysql_connect()</strong> always open  a new link, even if
                         <strong>mysql_connect()</strong> was called  before with the same parameters. In SQL safe
                         mode, this parameter is ignored.
  <info>int</info>     <strong>$client_flags</strong>  The <strong>$client_flags</strong> parameter can be a combination  of the following
                         constants: 128 (enable <return>LOAD DATA LOCAL</return> handling), <info>MYSQL_CLIENT_SSL</info>,
                         <info>MYSQL_CLIENT_COMPRESS</info>,  <info>MYSQL_CLIENT_IGNORE_SPACE</info> or
                         <info>MYSQL_CLIENT_INTERACTIVE</info>. Read the section about  for further information.
                         In SQL safe mode, this parameter is ignored.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a MySQL link identifier on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_pconnect()</strong>
   * <strong>mysql_close()</strong>


id: mysql_create_db
type: function
doc:
<comment>Description:</comment>
  Create a MySQL database
  
  <strong>mysql_create_db()</strong> attempts to create a new database on the server associated with the specified
  link identifier.

<comment>Param:</comment>
  <info>string</info>    <strong>$database_name</strong>    The name of the database being created.
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>
   * <strong>mysql_select_db()</strong>


id: mysql_data_seek
type: function
doc:
<comment>Description:</comment>
  Move internal result pointer
  
  <strong>mysql_data_seek()</strong> moves the internal row pointer of the MySQL result associated with the specified
  result identifier to point to the specified row number.  The next call to a MySQL fetch function,
  such as <strong>mysql_fetch_assoc()</strong>, would return that row.
  
  <strong>$row_number</strong> starts at 0. The  <strong>$row_number</strong> should be a value in the range from 0 to
  <strong>mysql_num_rows()</strong> - 1. However if the result set  is empty (<strong>mysql_num_rows()</strong> == 0), a seek to 0
  will  fail with an <info>E_WARNING</info> and  <strong>mysql_data_seek()</strong> will return <info>false</info>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>      The result <info>resource</info> that
                         is being evaluated. This result comes from a call to
                         <strong>mysql_query()</strong>.
  <info>int</info>       <strong>$row_number</strong>  The desired row number of the new result pointer.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>
   * <strong>mysql_num_rows()</strong>
   * <strong>mysql_fetch_row()</strong>
   * <strong>mysql_fetch_assoc()</strong>
   * <strong>mysql_fetch_array()</strong>
   * <strong>mysql_fetch_object()</strong>


id: mysql_db_name
type: function
doc:
<comment>Description:</comment>
  Retrieves database name from the call to mysql_list_dbs
  
  Retrieve the database name from a call to  <strong>mysql_list_dbs()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  The result pointer from a call to <strong>mysql_list_dbs()</strong>.
  <info>int</info>       <strong>$row</strong>     The index into the result set.
  <info>mixed</info>     <strong>$field</strong>   The field name.

<comment>Return:</comment>
  <info>string</info>  Returns the database name on success, and <info>false</info> on failure. If <info>false</info> is returned, use
          <strong>mysql_error()</strong> to determine the nature of the error.

<comment>See Also:</comment>
   * <strong>mysql_list_dbs()</strong>
   * <strong>mysql_tablename()</strong>


id: mysql_db_query
type: function
doc:
<comment>Description:</comment>
  Selects a database and executes a query on it
  
  <strong>mysql_db_query()</strong> selects a database, and executes a  query on it.

<comment>Param:</comment>
  <info>string</info>    <strong>$database</strong>         The name of the database that will be selected.
  <info>string</info>    <strong>$query</strong>            The MySQL query.
                              
                              Data inside the query should be properly escaped.
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>resource|bool</info>  Returns a positive MySQL result resource to the query result, or <info>false</info> on error.
                 The function also returns <info>true</info>/<info>false</info> for <return>INSERT</return>/<return>UPDATE</return>/<return>DELETE</return> queries to indicate
                 success/failure.

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>
   * <strong>mysql_select_db()</strong>


id: mysql_drop_db
type: function
doc:
<comment>Description:</comment>
  Drop (delete) a MySQL database
  
  <strong>mysql_drop_db()</strong> attempts to drop (remove) an entire database from the server associated with the
  specified link identifier. This function is deprecated, it is preferable to use  <strong>mysql_query()</strong> to
  issue an sql  <return>DROP DATABASE</return> statement instead.

<comment>Param:</comment>
  <info>string</info>    <strong>$database_name</strong>    The name of the database that will be deleted.
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>


id: mysql_errno
type: function
doc:
<comment>Description:</comment>
  Returns the numerical value of the error message from previous MySQL operation
  
  Returns the error number from the last MySQL function.
  
  Errors coming back from the MySQL database backend no longer issue warnings. Instead, use
  <strong>mysql_errno()</strong> to retrieve the error code. Note that this function only returns the error code from
  the most recently executed MySQL function (not including <strong>mysql_error()</strong> and <strong>mysql_errno()</strong>), so if
  you want to use it, make sure you check the value before calling another MySQL function.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>int</info>  Returns the error number from the last MySQL function, or <return>0</return> (zero) if no error occurred.

<comment>See Also:</comment>
   * <strong>mysql_error()</strong>
   * MySQL error codes


id: mysql_error
type: function
doc:
<comment>Description:</comment>
  Returns the text of the error message from previous MySQL operation
  
  Returns the error text from the last MySQL function. Errors coming back from the MySQL database
  backend no longer issue warnings. Instead, use <strong>mysql_error()</strong> to retrieve the error text. Note that
  this function only returns the error text from the most recently executed MySQL function (not
  including <strong>mysql_error()</strong> and <strong>mysql_errno()</strong>), so if you want to use it, make sure you check the
  value before calling another MySQL function.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>string</info>  Returns the error text from the last MySQL function, or <return>''</return> (empty string) if no error
          occurred.

<comment>See Also:</comment>
   * <strong>mysql_errno()</strong>
   * MySQL error codes


id: mysql_escape_string
type: function
doc:
<comment>Description:</comment>
  Escapes a string for use in a mysql_query
  
  This function will escape the <strong>$unescaped_string</strong>, so that it is safe to place it in a
  <strong>mysql_query()</strong>. This function is deprecated.
  
  This function is identical to <strong>mysql_real_escape_string()</strong>  except that <strong>mysql_real_escape_string()</strong>
  takes a  connection handler and escapes the string according to the current  character set.
  <strong>mysql_escape_string()</strong> does not take a connection argument and does not respect the current charset
  setting.

<comment>Param:</comment>
  <info>string</info>  <strong>$unescaped_string</strong>  The string that is to be escaped.

<comment>Return:</comment>
  <info>string</info>  Returns the escaped string.

<comment>See Also:</comment>
   * <strong>mysql_real_escape_string()</strong>


id: mysql_fetch_array
type: function
doc:
<comment>Description:</comment>
  Fetch a result row as an associative array, a numeric array, or both
  
  Returns an array that corresponds to the fetched row and moves the internal data pointer ahead.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>       The result <info>resource</info> that
                          is being evaluated. This result comes from a call to
                          <strong>mysql_query()</strong>.
  <info>int</info>       <strong>$result_type</strong>  The type of array that is to be fetched. It's a constant and can take the
                          following values: <info>MYSQL_ASSOC</info>,  <info>MYSQL_NUM</info>, and <info>MYSQL_BOTH</info>.

<comment>Return:</comment>
  <info>array</info>  Returns an array of strings that corresponds to the fetched row, or <info>false</info> if there are no
         more rows. The type of returned array depends on how <strong>$result_type</strong> is defined. By using
         <info>MYSQL_BOTH</info> (default), you'll get an array with both  associative and number indices. Using
         <info>MYSQL_ASSOC</info>, you  only get associative indices (as <strong>mysql_fetch_assoc()</strong>  works), using
         <info>MYSQL_NUM</info>, you only get number indices  (as <strong>mysql_fetch_row()</strong> works).
         
         If two or more columns of the result have the same field names, the last column will take
         precedence. To access the other column(s) of the same name, you must use the numeric index
         of the column or make an alias for the column. For aliased columns, you cannot access the
         contents with the original column name.

<comment>See Also:</comment>
   * <strong>mysql_fetch_row()</strong>
   * <strong>mysql_fetch_assoc()</strong>
   * <strong>mysql_data_seek()</strong>
   * <strong>mysql_query()</strong>


id: mysql_fetch_assoc
type: function
doc:
<comment>Description:</comment>
  Fetch a result row as an associative array
  
  Returns an associative array that corresponds to the fetched row and moves the internal data
  pointer ahead. <strong>mysql_fetch_assoc()</strong> is equivalent to calling <strong>mysql_fetch_array()</strong> with MYSQL_ASSOC
  for the optional second parameter. It only returns an associative array.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  The result <info>resource</info> that
                     is being evaluated. This result comes from a call to
                     <strong>mysql_query()</strong>.

<comment>Return:</comment>
  <info>array</info>  Returns an associative array of strings that corresponds to the fetched row, or <info>false</info> if
         there are no more rows.
         
         If two or more columns of the result have the same field names, the last column will take
         precedence. To access the other column(s) of the same name, you either need to access the
         result with numeric indices by using <strong>mysql_fetch_row()</strong> or add alias names. See the example
         at the <strong>mysql_fetch_array()</strong> description about aliases.

<comment>See Also:</comment>
   * <strong>mysql_fetch_row()</strong>
   * <strong>mysql_fetch_array()</strong>
   * <strong>mysql_data_seek()</strong>
   * <strong>mysql_query()</strong>
   * <strong>mysql_error()</strong>


id: mysql_fetch_field
type: function
doc:
<comment>Description:</comment>
  Get column information from a result and return as an object
  
  Returns an object containing field information. This function can be used  to obtain information
  about fields in the provided query result.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        The result <info>resource</info> that
                           is being evaluated. This result comes from a call to
                           <strong>mysql_query()</strong>.
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. If the field offset is not specified, the
                           next field that was not yet retrieved by this function is retrieved.  The
                           <strong>$field_offset</strong> starts at <return>0</return>.

<comment>Return:</comment>
  <info>object</info>  Returns an <info>object</info> containing field information. The properties  of the object are:
          
           name - column name  table - name of the table the column belongs to, which is the alias
          name if one is defined  max_length - maximum length of the column  not_null - 1 if the
          column cannot be <info>null</info>  primary_key - 1 if the column is a primary key  unique_key - 1 if
          the column is a unique key  multiple_key - 1 if the column is a non-unique key  numeric -
          1 if the column is numeric  blob - 1 if the column is a BLOB  type - the type of the
          column  unsigned - 1 if the column is unsigned  zerofill - 1 if the column is zero-filled
          
          name - column name
          
          table - name of the table the column belongs to, which is the alias name if one is defined
          
          max_length - maximum length of the column
          
          not_null - 1 if the column cannot be <info>null</info>
          
          primary_key - 1 if the column is a primary key
          
          unique_key - 1 if the column is a unique key
          
          multiple_key - 1 if the column is a non-unique key
          
          numeric - 1 if the column is numeric
          
          blob - 1 if the column is a BLOB
          
          type - the type of the column
          
          unsigned - 1 if the column is unsigned
          
          zerofill - 1 if the column is zero-filled

<comment>See Also:</comment>
   * <strong>mysql_field_seek()</strong>


id: mysql_fetch_lengths
type: function
doc:
<comment>Description:</comment>
  Get the length of each output in a result
  
  Returns an array that corresponds to the lengths of each field in the last row fetched by MySQL.
  
  <strong>mysql_fetch_lengths()</strong> stores the lengths of each result column in the last row returned by
  <strong>mysql_fetch_row()</strong>, <strong>mysql_fetch_assoc()</strong>, <strong>mysql_fetch_array()</strong>, and <strong>mysql_fetch_object()</strong> in an array,
  starting at offset 0.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  The result <info>resource</info> that
                     is being evaluated. This result comes from a call to
                     <strong>mysql_query()</strong>.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> of lengths on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_field_len()</strong>
   * <strong>mysql_fetch_row()</strong>
   * <strong>strlen()</strong>


id: mysql_fetch_object
type: function
doc:
<comment>Description:</comment>
  Fetch a result row as an object
  
  Returns an object with properties that correspond to the fetched row and moves the internal data
  pointer ahead.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>      The result <info>resource</info> that
                         is being evaluated. This result comes from a call to
                         <strong>mysql_query()</strong>.
  <info>string</info>    <strong>$class_name</strong>  The name of the class to instantiate, set the properties of and return. If
                         not specified, a <class>stdClass</class> object is returned.
  <info>array</info>     <strong>$params</strong>      An optional <info>array</info> of parameters to pass to the constructor for <strong>$class_name</strong>
                         objects.

<comment>Return:</comment>
  <info>object</info>  Returns an <info>object</info> with string properties that correspond to the fetched row, or <info>false</info> if
          there are no more rows.

<comment>See Also:</comment>
   * <strong>mysql_fetch_array()</strong>
   * <strong>mysql_fetch_assoc()</strong>
   * <strong>mysql_fetch_row()</strong>
   * <strong>mysql_data_seek()</strong>
   * <strong>mysql_query()</strong>


id: mysql_fetch_row
type: function
doc:
<comment>Description:</comment>
  Get a result row as an enumerated array
  
  Returns a numerical array that corresponds to the fetched row and moves the internal data pointer
  ahead.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  The result <info>resource</info> that
                     is being evaluated. This result comes from a call to
                     <strong>mysql_query()</strong>.

<comment>Return:</comment>
  <info>array</info>  Returns an numerical array of strings that corresponds to the fetched row, or <info>false</info> if
         there are no more rows.
         
         <strong>mysql_fetch_row()</strong> fetches one row of data from the result associated with the specified
         result identifier.  The row is returned as an array.  Each result column is stored in an
         array offset, starting at offset 0.

<comment>See Also:</comment>
   * <strong>mysql_fetch_array()</strong>
   * <strong>mysql_fetch_assoc()</strong>
   * <strong>mysql_fetch_object()</strong>
   * <strong>mysql_data_seek()</strong>
   * <strong>mysql_fetch_lengths()</strong>
   * <strong>mysql_result()</strong>


id: mysql_field_flags
type: function
doc:
<comment>Description:</comment>
  Get the flags associated with the specified field in a result
  
  <strong>mysql_field_flags()</strong> returns the field flags of the specified field. The flags are reported as a
  single word per flag separated by a single space, so that you can split the returned value using
  <strong>explode()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        The result <info>resource</info> that
                           is being evaluated. This result comes from a call to
                           <strong>mysql_query()</strong>.
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The
                           <strong>$field_offset</strong> starts at <return>0</return>. If
                           <strong>$field_offset</strong> does not exist, an error of level
                           <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>string|false</info>  Returns a string of flags associated with the result or <info>false</info> on failure.
                
                The following flags are reported, if your version of MySQL is current enough to
                support them: <return>"not_null"</return>,  <return>"primary_key"</return>, <return>"unique_key"</return>,  <return>"multiple_key"</return>, <return>"blob"</return>,
                <return>"unsigned"</return>, <return>"zerofill"</return>, <return>"binary"</return>, <return>"enum"</return>,  <return>"auto_increment"</return> and <return>"timestamp"</return>.

<comment>See Also:</comment>
   * <strong>mysql_field_type()</strong>
   * <strong>mysql_field_len()</strong>


id: mysql_field_len
type: function
doc:
<comment>Description:</comment>
  Returns the length of the specified field
  
  <strong>mysql_field_len()</strong> returns the length of the specified field.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        The result <info>resource</info> that
                           is being evaluated. This result comes from a call to
                           <strong>mysql_query()</strong>.
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The
                           <strong>$field_offset</strong> starts at <return>0</return>. If
                           <strong>$field_offset</strong> does not exist, an error of level
                           <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>int|false</info>  The length of the specified field index on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_fetch_lengths()</strong>
   * <strong>strlen()</strong>


id: mysql_field_name
type: function
doc:
<comment>Description:</comment>
  Get the name of the specified field in a result
  
  <strong>mysql_field_name()</strong> returns the name of the specified field index.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        The result <info>resource</info> that
                           is being evaluated. This result comes from a call to
                           <strong>mysql_query()</strong>.
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The
                           <strong>$field_offset</strong> starts at <return>0</return>. If
                           <strong>$field_offset</strong> does not exist, an error of level
                           <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>string|false</info>  The name of the specified field index on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_field_type()</strong>
   * <strong>mysql_field_len()</strong>


id: mysql_field_seek
type: function
doc:
<comment>Description:</comment>
  Set result pointer to a specified field offset
  
  Seeks to the specified field offset.  If the next call to <strong>mysql_fetch_field()</strong> doesn't include a
  field offset, the field offset specified in <strong>mysql_field_seek()</strong> will be returned.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        The result <info>resource</info> that
                           is being evaluated. This result comes from a call to
                           <strong>mysql_query()</strong>.
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The
                           <strong>$field_offset</strong> starts at <return>0</return>. If
                           <strong>$field_offset</strong> does not exist, an error of level
                           <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_fetch_field()</strong>


id: mysql_field_table
type: function
doc:
<comment>Description:</comment>
  Get name of the table the specified field is in
  
  Returns the name of the table that the specified field is in.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        The result <info>resource</info> that
                           is being evaluated. This result comes from a call to
                           <strong>mysql_query()</strong>.
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The
                           <strong>$field_offset</strong> starts at <return>0</return>. If
                           <strong>$field_offset</strong> does not exist, an error of level
                           <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>string</info>  The name of the table on success.

<comment>See Also:</comment>
   * <strong>mysql_list_tables()</strong>


id: mysql_field_type
type: function
doc:
<comment>Description:</comment>
  Get the type of the specified field in a result
  
  <strong>mysql_field_type()</strong> is similar to the <strong>mysql_field_name()</strong> function. The arguments are identical, but
  the field type is returned instead.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        The result <info>resource</info> that
                           is being evaluated. This result comes from a call to
                           <strong>mysql_query()</strong>.
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The
                           <strong>$field_offset</strong> starts at <return>0</return>. If
                           <strong>$field_offset</strong> does not exist, an error of level
                           <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>string</info>  The returned field type will be one of <return>"int"</return>, <return>"real"</return>,  <return>"string"</return>, <return>"blob"</return>, and others as
          detailed in the MySQL documentation.

<comment>See Also:</comment>
   * <strong>mysql_field_name()</strong>
   * <strong>mysql_field_len()</strong>


id: mysql_free_result
type: function
doc:
<comment>Description:</comment>
  Free result memory
  
  <strong>mysql_free_result()</strong> will free all memory associated with the result identifier <strong>$result</strong>.
  
  <strong>mysql_free_result()</strong> only needs to be called if you are concerned about how much memory is being
  used for queries that return large result sets.  All associated result memory is automatically
  freed at the end of the script's execution.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  The result <info>resource</info> that
                     is being evaluated. This result comes from a call to
                     <strong>mysql_query()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
        
        If a non-resource is used for the <strong>$result</strong>, an error of level E_WARNING will be emitted.
        It's worth noting that <strong>mysql_query()</strong> only returns a <info>resource</info> for SELECT, SHOW, EXPLAIN, and
        DESCRIBE queries.

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>
   * <strong>is_resource()</strong>


id: mysql_get_client_info
type: function
doc:
<comment>Description:</comment>
  Get MySQL client info
  
  <strong>mysql_get_client_info()</strong> returns a string that represents the client library version.

<comment>Return:</comment>
  <info>string</info>  The MySQL client version.

<comment>See Also:</comment>
   * <strong>mysql_get_host_info()</strong>
   * <strong>mysql_get_proto_info()</strong>
   * <strong>mysql_get_server_info()</strong>


id: mysql_get_host_info
type: function
doc:
<comment>Description:</comment>
  Get MySQL host info
  
  Describes the type of connection in use for the connection, including the server host name.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>string|false</info>  Returns a string describing the type of MySQL connection in use for the connection
                or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_get_client_info()</strong>
   * <strong>mysql_get_proto_info()</strong>
   * <strong>mysql_get_server_info()</strong>


id: mysql_get_proto_info
type: function
doc:
<comment>Description:</comment>
  Get MySQL protocol info
  
  Retrieves the MySQL protocol.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>int|false</info>  Returns the MySQL protocol on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_get_client_info()</strong>
   * <strong>mysql_get_host_info()</strong>
   * <strong>mysql_get_server_info()</strong>


id: mysql_get_server_info
type: function
doc:
<comment>Description:</comment>
  Get MySQL server info
  
  Retrieves the MySQL server version.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>string|false</info>  Returns the MySQL server version on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_get_client_info()</strong>
   * <strong>mysql_get_host_info()</strong>
   * <strong>mysql_get_proto_info()</strong>
   * <strong>phpversion()</strong>


id: mysql_info
type: function
doc:
<comment>Description:</comment>
  Get information about the most recent query
  
  Returns detailed information about the last query.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>string</info>  Returns information about the statement on success, or <info>false</info> on failure. See the example
          below for which statements provide information, and what the returned value may look like.
          Statements that are not listed  will return <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_affected_rows()</strong>
   * <strong>mysql_insert_id()</strong>
   * <strong>mysql_stat()</strong>


id: mysql_insert_id
type: function
doc:
<comment>Description:</comment>
  Get the ID generated in the last query
  
  Retrieves the ID generated for an AUTO_INCREMENT column by the previous  query (usually INSERT).

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>int</info>  The ID generated for an AUTO_INCREMENT column by the previous  query on success, <return>0</return> if the
       previous query does not generate an AUTO_INCREMENT value, or <info>false</info> if no MySQL connection was
       established.

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>
   * <strong>mysql_info()</strong>


id: mysql_list_dbs
type: function
doc:
<comment>Description:</comment>
  List databases available on a MySQL server
  
  Returns a result pointer containing the databases available from the  current mysql daemon.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>resource</info>  Returns a result pointer <info>resource</info> on success, or <info>false</info> on failure. Use the
            <strong>mysql_tablename()</strong> function to traverse  this result pointer, or any function for result
            tables, such as  <strong>mysql_fetch_array()</strong>.

<comment>See Also:</comment>
   * <strong>mysql_db_name()</strong>
   * <strong>mysql_select_db()</strong>


id: mysql_list_fields
type: function
doc:
<comment>Description:</comment>
  List MySQL table fields
  
  Retrieves information about the given table name.
  
  This function is deprecated. It is preferable to use  <strong>mysql_query()</strong> to issue an SQL <return>SHOW COLUMNS
  FROM  table [LIKE 'name']</return> statement instead.

<comment>Param:</comment>
  <info>string</info>    <strong>$database_name</strong>    The name of the database that's being queried.
  <info>string</info>    <strong>$table_name</strong>       The name of the table that's being queried.
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>resource</info>  A result pointer <info>resource</info> on success, or <info>false</info> on failure.
            
            The returned result can be used with <strong>mysql_field_flags()</strong>, <strong>mysql_field_len()</strong>,
            <strong>mysql_field_name()</strong> and <strong>mysql_field_type()</strong>.

<comment>See Also:</comment>
   * <strong>mysql_field_flags()</strong>
   * <strong>mysql_info()</strong>


id: mysql_list_processes
type: function
doc:
<comment>Description:</comment>
  List MySQL processes
  
  Retrieves the current MySQL server threads.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>resource|false</info>  A result pointer <info>resource</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_thread_id()</strong>
   * <strong>mysql_stat()</strong>


id: mysql_list_tables
type: function
doc:
<comment>Description:</comment>
  List tables in a MySQL database
  
  Retrieves a list of table names from a MySQL database.
  
  This function is deprecated. It is preferable to use  <strong>mysql_query()</strong> to issue an SQL <return>SHOW TABLES
  [FROM db_name] [LIKE 'pattern']</return> statement instead.

<comment>Param:</comment>
  <info>string</info>    <strong>$database</strong>         The name of the database
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>resource|false</info>  A result pointer <info>resource</info> on success or <info>false</info> on failure.
                  
                  Use the <strong>mysql_tablename()</strong> function to traverse this result pointer, or any
                  function for result tables, such as <strong>mysql_fetch_array()</strong>.

<comment>See Also:</comment>
   * <strong>mysql_list_dbs()</strong>
   * <strong>mysql_tablename()</strong>


id: mysql_num_fields
type: function
doc:
<comment>Description:</comment>
  Get number of fields in result
  
  Retrieves the number of fields from a query.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  The result <info>resource</info> that
                     is being evaluated. This result comes from a call to
                     <strong>mysql_query()</strong>.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of fields in the result set <info>resource</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_select_db()</strong>
   * <strong>mysql_query()</strong>
   * <strong>mysql_fetch_field()</strong>
   * <strong>mysql_num_rows()</strong>


id: mysql_num_rows
type: function
doc:
<comment>Description:</comment>
  Get number of rows in result
  
  Retrieves the number of rows from a result set. This command is only valid  for statements like
  SELECT or SHOW that return an actual result set.  To retrieve the number of rows affected by a
  INSERT, UPDATE, REPLACE or  DELETE query, use <strong>mysql_affected_rows()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  The result <info>resource</info> that
                     is being evaluated. This result comes from a call to
                     <strong>mysql_query()</strong>.

<comment>Return:</comment>
  <info>int|false</info>  The number of rows in a result set on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_affected_rows()</strong>
   * <strong>mysql_connect()</strong>
   * <strong>mysql_data_seek()</strong>
   * <strong>mysql_select_db()</strong>
   * <strong>mysql_query()</strong>


id: mysql_pconnect
type: function
doc:
<comment>Description:</comment>
  Open a persistent connection to a MySQL server
  
  Establishes a persistent connection to a MySQL server.
  
  <strong>mysql_pconnect()</strong> acts very much like <strong>mysql_connect()</strong> with two major differences.
  
  First, when connecting, the function would first try to find a (persistent) link that's already
  open with the same host, username and password.  If one is found, an identifier for it will be
  returned instead of opening a new connection.
  
  Second, the connection to the SQL server will not be closed when the execution of the script ends.
  Instead, the link will remain open for future use (<strong>mysql_close()</strong> will not close links established
  by <strong>mysql_pconnect()</strong>).
  
  This type of link is therefore called 'persistent'.

<comment>Param:</comment>
  <info>string</info>  <strong>$server</strong>        The MySQL server. It can also include a port number. e.g.  "hostname:port"
                         or a path to a local socket e.g. ":/path/to/socket" for  the localhost.
                         
                         If the PHP directive  mysql.default_host is undefined (default), then the
                         default  value is 'localhost:3306'
  <info>string</info>  <strong>$username</strong>      The username. Default value is the name of the user that owns the server
                         process.
  <info>string</info>  <strong>$password</strong>      The password. Default value is an empty password.
  <info>int</info>     <strong>$client_flags</strong>  The <strong>$client_flags</strong> parameter can be a combination  of the following
                         constants: 128 (enable <return>LOAD DATA LOCAL</return> handling), <info>MYSQL_CLIENT_SSL</info>,
                         <info>MYSQL_CLIENT_COMPRESS</info>,  <info>MYSQL_CLIENT_IGNORE_SPACE</info> or
                         <info>MYSQL_CLIENT_INTERACTIVE</info>.

<comment>Return:</comment>
  <info>resource</info>  Returns a MySQL persistent link identifier on success, or <info>false</info> on  failure.

<comment>See Also:</comment>
   * <strong>mysql_connect()</strong>
   * Persistent
    Database Connections


id: mysql_ping
type: function
doc:
<comment>Description:</comment>
  Ping a server connection or reconnect if there is no connection
  
  Checks whether or not the connection to the server is working. If it has gone down, an automatic
  reconnection is attempted. This function can be used by scripts that remain idle for a long while,
  to check whether or not the server has closed the connection and reconnect if necessary.
  
  Automatic reconnection is disabled by default in versions of MySQL &gt;= 5.0.3.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the connection to the server MySQL server is working,  otherwise <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_thread_id()</strong>
   * <strong>mysql_list_processes()</strong>


id: mysql_query
type: function
doc:
<comment>Description:</comment>
  Send a MySQL query
  
  <strong>mysql_query()</strong> sends a unique query (multiple queries are not supported) to the currently active
  database on the server that's associated with the specified <strong>$link_identifier</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$query</strong>            An SQL query
                              
                              The query string should not end with a semicolon. Data inside the
                              query should be properly escaped.
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>mixed</info>  For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, <strong>mysql_query()</strong>
         returns a <info>resource</info> on success, or <info>false</info> on error.
         
         For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, <strong>mysql_query()</strong> returns
         <info>true</info> on success or <info>false</info> on error.
         
         The returned result resource should be passed to <strong>mysql_fetch_array()</strong>, and other functions
         for dealing with result tables, to access the returned data.
         
         Use <strong>mysql_num_rows()</strong> to find out how many rows were returned for a SELECT statement or
         <strong>mysql_affected_rows()</strong> to find out how many rows were affected by a DELETE, INSERT, REPLACE,
         or UPDATE statement.
         
         <strong>mysql_query()</strong> will also fail and return <info>false</info> if the user does not have permission to
         access the table(s) referenced by the query.

<comment>See Also:</comment>
   * <strong>mysql_connect()</strong>
   * <strong>mysql_error()</strong>
   * <strong>mysql_real_escape_string()</strong>
   * <strong>mysql_result()</strong>
   * <strong>mysql_fetch_assoc()</strong>
   * <strong>mysql_unbuffered_query()</strong>


id: mysql_real_escape_string
type: function
doc:
<comment>Description:</comment>
  Escapes special characters in a string for use in an SQL statement
  
  Escapes special characters in the <strong>$unescaped_string</strong>,  taking into account the current character
  set of the connection so that it  is safe to place it in a <strong>mysql_query()</strong>. If binary data  is to be
  inserted, this function must be used.
  
  <strong>mysql_real_escape_string()</strong> calls MySQL's library function mysql_real_escape_string, which prepends
  backslashes to the following characters: <return>\x00</return>, <return>\n</return>, <return>\r</return>, <return>\</return>, <return>'</return>, <return>"</return> and <return>\x1a</return>.
  
  This function must always (with few exceptions) be used to make data safe before sending a query
  to MySQL.
  
  The character set must be set either at the server level, or with the API function
  <strong>mysql_set_charset()</strong> for it to affect <strong>mysql_real_escape_string()</strong>. See the concepts section on
  character sets for more information.

<comment>Param:</comment>
  <info>string</info>    <strong>$unescaped_string</strong>  The string that is to be escaped.
  <info>resource</info>  <strong>$link_identifier</strong>   The MySQL connection. If the
                               link identifier is not specified, the last link opened by
                               <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                               will try to create one as if <strong>mysql_connect()</strong> had been called
                               with no arguments. If no connection is found or established, an
                               <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>string</info>  Returns the escaped string, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mysql_set_charset()</strong>
   * <strong>mysql_client_encoding()</strong>


id: mysql_result
type: function
doc:
<comment>Description:</comment>
  Get result data
  
  Retrieves the contents of one cell from a MySQL result set.
  
  When working on large result sets, you should consider using one of the functions that fetch an
  entire row (specified below).  As these functions return the contents of multiple cells in one
  function call, they're MUCH quicker than <strong>mysql_result()</strong>.  Also, note that specifying a numeric
  offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname
  argument.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  The result <info>resource</info> that
                     is being evaluated. This result comes from a call to
                     <strong>mysql_query()</strong>.
  <info>int</info>       <strong>$row</strong>     The row number from the result that's being retrieved. Row numbers  start at <return>0</return>.
  <info>mixed</info>     <strong>$field</strong>   The name or offset of the field being retrieved.
                     
                     It can be the field's offset, the field's name, or the field's table  dot field
                     name (tablename.fieldname). If the column name has been aliased ('select foo as
                     bar from...'), use the alias instead of the  column name. If undefined, the
                     first field is retrieved.

<comment>Return:</comment>
  <info>string</info>  The contents of one cell from a MySQL result set on success, or  <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_fetch_row()</strong>
   * <strong>mysql_fetch_array()</strong>
   * <strong>mysql_fetch_assoc()</strong>
   * <strong>mysql_fetch_object()</strong>


id: mysql_select_db
type: function
doc:
<comment>Description:</comment>
  Select a MySQL database
  
  Sets the current active database on the server that's associated with the  specified link
  identifier. Every subsequent call to  <strong>mysql_query()</strong> will be made on the active database.

<comment>Param:</comment>
  <info>string</info>    <strong>$database_name</strong>    The name of the database that is to be selected.
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_connect()</strong>
   * <strong>mysql_pconnect()</strong>
   * <strong>mysql_query()</strong>


id: mysql_set_charset
type: function
doc:
<comment>Description:</comment>
  Sets the client character set
  
  Sets the default character set for the current connection.

<comment>Param:</comment>
  <info>string</info>    <strong>$charset</strong>          A valid character set name.
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * Setting character sets in MySQL
   * List of character sets that MySQL supports
   * <strong>mysql_client_encoding()</strong>


id: mysql_stat
type: function
doc:
<comment>Description:</comment>
  Get current system status
  
  <strong>mysql_stat()</strong> returns the current server status.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>string</info>  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
          <return>SHOW STATUS</return> SQL command. If <strong>$link_identifier</strong> is invalid, <info>null</info> is returned.

<comment>See Also:</comment>
   * <strong>mysql_get_server_info()</strong>
   * <strong>mysql_list_processes()</strong>


id: mysql_tablename
type: function
doc:
<comment>Description:</comment>
  Get table name of field
  
  Retrieves the table name from a <strong>$result</strong>.
  
  This function is deprecated. It is preferable to use  <strong>mysql_query()</strong> to issue an SQL <return>SHOW TABLES
  [FROM db_name] [LIKE 'pattern']</return> statement instead.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  A result pointer <info>resource</info> that's returned from   <strong>mysql_list_tables()</strong>.
  <info>int</info>       <strong>$i</strong>       The integer index (row/table number)

<comment>Return:</comment>
  <info>string|false</info>  The name of the table on success or <info>false</info> on failure.
                
                Use the <strong>mysql_tablename()</strong> function to traverse this result pointer, or any function
                for result tables, such as <strong>mysql_fetch_array()</strong>.

<comment>See Also:</comment>
   * <strong>mysql_list_tables()</strong>
   * <strong>mysql_field_table()</strong>
   * <strong>mysql_db_name()</strong>


id: mysql_thread_id
type: function
doc:
<comment>Description:</comment>
  Return the current thread ID
  
  Retrieves the current thread ID. If the connection is lost, and a reconnect  with <strong>mysql_ping()</strong> is
  executed, the thread ID will  change. This means only retrieve the thread ID when needed.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>int|false</info>  The thread ID on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_ping()</strong>
   * <strong>mysql_list_processes()</strong>


id: mysql_unbuffered_query
type: function
doc:
<comment>Description:</comment>
  Send an SQL query to MySQL without fetching and buffering the result rows
  
  <strong>mysql_unbuffered_query()</strong> sends the SQL query <strong>$query</strong> to MySQL without automatically fetching and
  buffering the result rows as <strong>mysql_query()</strong> does.  This saves a considerable amount of memory with
  SQL queries that produce large result sets, and you can start working on the result set
  immediately after the first row has been retrieved as you don't have to wait until the complete
  SQL query has been performed.  To use <strong>mysql_unbuffered_query()</strong> while multiple database connections
  are open, you must specify the optional parameter <strong>$link_identifier</strong> to identify which connection
  you want to use.

<comment>Param:</comment>
  <info>string</info>    <strong>$query</strong>            The SQL query to execute.
                              
                              Data inside the query should be properly escaped.
  <info>resource</info>  <strong>$link_identifier</strong>  The MySQL connection. If the
                              link identifier is not specified, the last link opened by
                              <strong>mysql_connect()</strong> is assumed. If no such link is found, it
                              will try to create one as if <strong>mysql_connect()</strong> had been called
                              with no arguments. If no connection is found or established, an
                              <info>E_WARNING</info> level error is generated.

<comment>Return:</comment>
  <info>resource</info>  For SELECT, SHOW, DESCRIBE or EXPLAIN statements, <strong>mysql_unbuffered_query()</strong>  returns a
            <info>resource</info> on success, or <info>false</info> on error.
            
            For other type of SQL statements, UPDATE, DELETE, DROP, etc, <strong>mysql_unbuffered_query()</strong>
            returns <info>true</info> on success or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>


id: mysql_xdevapi\Client::close
type: function
doc:
<comment>Description:</comment>
  Close client
  
  Close all client connections with the server.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if connections are closed.


id: mysql_xdevapi\Table
type: class
doc:
<comment>Description:</comment>
  Provides access to the table through INSERT/SELECT/UPDATE/DELETE statements.


id: mysqli::__construct
type: function
doc:
<comment>Description:</comment>
  Open a new connection to the MySQL server
  
  Object-oriented style
  
  Procedural style
  
  Opens a connection to the MySQL Server.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$hostname</strong>  Can be either a host name or an IP address. When passing <info>null</info>, the value
                          is retrieved from mysqli.default_host. When possible, pipes will be used
                          instead of the TCP/IP protocol. The TCP/IP protocol is used if a host name
                          and port number are provided together e.g. <return>localhost:3308</return>.
                          
                          Prepending host by <return>p:</return> opens a persistent connection. <strong>mysqli_change_user()</strong>
                          is automatically called on connections opened from the connection pool.
  <info>string|null</info>  <strong>$username</strong>  The MySQL username or <info>null</info> to assume the username based on the
                          mysqli.default_user ini option.
  <info>string|null</info>  <strong>$password</strong>  The MySQL password or <info>null</info> to assume the password based on the
                          mysqli.default_pw ini option.
  <info>string|null</info>  <strong>$database</strong>  The default database to be used when performing queries or <info>null</info>.
  <info>int|null</info>     <strong>$port</strong>      The port number to attempt to connect to the MySQL server or <info>null</info> to
                          assume the port based on the mysqli.default_port ini option.
  <info>string|null</info>  <strong>$socket</strong>    The socket or named pipe that should be used or <info>null</info> to assume the socket
                          based on the mysqli.default_socket ini option.
                          
                          Specifying the <strong>$socket</strong> parameter will not explicitly determine the type of
                          connection to be used when connecting to the MySQL server. How the
                          connection is made to the MySQL database is determined by the <strong>$hostname</strong>
                          parameter.

<comment>Return:</comment>
  <info>bool</info>  <strong>mysqli_connect()</strong> returns an object which represents the connection to a MySQL Server, or
        <info>false</info> on failure.
        
        mysqli::connect returns <info>true</info> on success or <info>false</info> on failure. Prior to PHP 8.1.0, returns
        <info>null</info> on success.

<comment>See Also:</comment>
   * <strong>mysqli_real_connect()</strong>
   * <strong>mysqli_options()</strong>
   * <strong>mysqli_connect_errno()</strong>
   * <strong>mysqli_connect_error()</strong>
   * <strong>mysqli_close()</strong>


id: mysqli::autocommit
type: function
doc:
<comment>Description:</comment>
  Turns on or off auto-committing database modifications
  
  Object-oriented style
  
  Procedural style
  
  Turns on or off auto-commit mode on queries for the database connection.
  
  To determine the current state of autocommit use the SQL command <return>SELECT @@autocommit</return>.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>   Procedural style only: A <class>mysqli</class> object
                   returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>bool</info>    <strong>$enable</strong>  Whether to turn on auto-commit or not.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_begin_transaction()</strong>
   * <strong>mysqli_commit()</strong>
   * <strong>mysqli_rollback()</strong>


id: mysqli::begin_transaction
type: function
doc:
<comment>Description:</comment>
  Starts a transaction
  
  Object-oriented style
  
  Procedural style:
  
  Begins a transaction. Requires the InnoDB  engine (it is enabled by default). For additional
  details about how MySQL transactions work, see http://dev.mysql.com/doc/mysql/en/commit.html.

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                       returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>int</info>          <strong>$flags</strong>  Valid flags are:
                       
                       <info>MYSQLI_TRANS_START_READ_ONLY</info>:  Start the transaction as "START TRANSACTION
                       READ ONLY". Requires MySQL 5.6 and above.
                       
                       <info>MYSQLI_TRANS_START_READ_WRITE</info>:  Start the transaction as "START TRANSACTION
                       READ WRITE". Requires MySQL 5.6 and above.
                       
                       <info>MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT</info>:  Start the transaction as "START
                       TRANSACTION WITH CONSISTENT SNAPSHOT".
  <info>string|null</info>  <strong>$name</strong>   Savepoint name for the transaction.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_autocommit()</strong>
   * <strong>mysqli_commit()</strong>
   * <strong>mysqli_rollback()</strong>


id: mysqli::change_user
type: function
doc:
<comment>Description:</comment>
  Changes the user of the specified database connection
  
  Object-oriented style
  
  Procedural style
  
  Changes the user of the specified database connection and sets the current database.
  
  In order to successfully change users a valid <strong>$username</strong> and <strong>$password</strong> parameters must be provided
  and that user must have sufficient permissions to access the desired database. If for any reason
  authorization fails, the current user authentication will remain.

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>     Procedural style only: A <class>mysqli</class> object
                          returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string</info>       <strong>$username</strong>  The MySQL user name.
  <info>string</info>       <strong>$password</strong>  The MySQL password.
  <info>string|null</info>  <strong>$database</strong>  The database to change to.
                          
                          If desired, the <info>null</info> value may be passed resulting in only changing the
                          user and not selecting a database. To select a database in this case use
                          the <strong>mysqli_select_db()</strong> function.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_connect()</strong>
   * <strong>mysqli_select_db()</strong>


id: mysqli::character_set_name
type: function
doc:
<comment>Description:</comment>
  Returns the current character set of the database connection
  
  Object-oriented style
  
  Procedural style
  
  Returns the current character set of the database connection.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>string</info>  The current character set of the connection

<comment>See Also:</comment>
   * <strong>mysqli_set_charset()</strong>
   * <strong>mysqli_real_escape_string()</strong>


id: mysqli::close
type: function
doc:
<comment>Description:</comment>
  Closes a previously opened database connection
  
  Object-oriented style
  
  Procedural style
  
  Closes a previously opened database connection.
  
  Open non-persistent MySQL connections and result sets are automatically closed when their objects
  are destroyed. Explicitly closing open  connections and freeing result sets is optional. However,
  it's a good idea to close the connection as soon as the script finishes performing all of its
  database operations, if it still has a lot of processing to do after getting the results.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * mysqli::__construct
   * <strong>mysqli_init()</strong>
   * <strong>mysqli_real_connect()</strong>
   * <strong>mysqli_free_result()</strong>


id: mysqli::commit
type: function
doc:
<comment>Description:</comment>
  Commits the current transaction
  
  Object-oriented style
  
  Procedural style
  
  Commits the current transaction for the database connection.

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                       returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>int</info>          <strong>$flags</strong>  A bitmask of <info>MYSQLI_TRANS_COR_*</info> constants.
  <info>string|null</info>  <strong>$name</strong>   If provided then <return>COMMIT/*name*/</return> is executed.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_autocommit()</strong>
   * <strong>mysqli_begin_transaction()</strong>
   * <strong>mysqli_rollback()</strong>
   * <strong>mysqli_savepoint()</strong>


id: mysqli::debug
type: function
doc:
<comment>Description:</comment>
  Performs debugging operations
  
  Object-oriented style
  
  Procedural style
  
  Performs debugging operations using the Fred Fish debugging library.

<comment>Param:</comment>
  <info>string</info>  <strong>$options</strong>  A string representing the debugging operation to perform
                    
                    The debug control string is a sequence of colon separated fields as follows:
                    <return>::]]></return> Each field consists of a mandatory flag character followed by an optional
                    <return>,</return> and comma separated list of modifiers: <return>flag[,modifier,modifier,...,modifier]</return>
                    
                    Recognized Flag Characters<strong>$options</strong>
                    characterDescriptionO<info>MYSQLND_DEBUG_FLUSH</info>A/a<info>MYSQLND_DEBUG_APPEND</info>F<info>MYSQLND_DEBUG_DUMP_FILE</info>i<info>MYSQLND_DEBUG_DUMP_PID</info>L<info>MYSQLND_DEBUG_DUMP_LINE</info>m<info>MYSQLND_DEBUG_TRACE_MEMORY_CALLS</info>n<info>MYSQLND_DEBUG_DUMP_LEVEL</info>ooutput
                    to
                    fileT<info>MYSQLND_DEBUG_DUMP_TIME</info>t<info>MYSQLND_DEBUG_DUMP_TRACE</info>x<info>MYSQLND_DEBUG_PROFILE_CALLS</info>

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>mysqli_dump_debug_info()</strong>
   * <strong>mysqli_report()</strong>


id: mysqli::dump_debug_info
type: function
doc:
<comment>Description:</comment>
  Dump debugging information into the log
  
  Object-oriented style
  
  Procedural style
  
  This function is designed to be executed by an user with the SUPER privilege and is used to dump
  debugging information into the log for the MySQL Server relating to the connection.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_debug()</strong>


id: mysqli::escape_string
type: function
doc:
<comment>Description:</comment>
  Alias of mysqli_real_escape_string
  
  This function is an alias of:  <strong>mysqli_real_escape_string()</strong>.


id: mysqli::execute_query
type: function
doc:
<comment>Description:</comment>
  Prepares, binds parameters, and executes SQL statement
  
  Object-oriented style
  
  Procedural style
  
  Prepares the SQL query, binds parameters, and executes it. The mysqli::execute_query method is a
  shortcut for mysqli::prepare, mysqli_stmt::bind_param, mysqli_stmt::execute, and
  mysqli_stmt::get_result.
  
  The statement template can contain zero or more question mark (<return>?</return>) parameter markers⁠—also called
  placeholders. The parameter values must be provided as an <info>array</info> using <strong>$params</strong> parameter.
  
  A prepared statement is created under the hood but it's never exposed outside of the function.
  It's impossible to access properties of the statement as one would do with the <class>mysqli_stmt</class> object.
  Due to this limitation, the status information is copied to the <class>mysqli</class> object and is available
  using its methods, e.g. <strong>mysqli_affected_rows()</strong> or <strong>mysqli_error()</strong>.
  
  In the case where a statement is passed to <strong>mysqli_execute_query()</strong> that is longer than
  <return>max_allowed_packet</return> of the server, the returned error codes are different depending on the
  operating system. The behavior is as follows:
  
  On Linux returns an error code of 1153. The error message means got a packet bigger than
  <return>max_allowed_packet</return> bytes.
  
  On Windows returns an error code 2006. This error message means server has gone away.

<comment>Param:</comment>
  <info>mysqli</info>      <strong>$mysql</strong>   Procedural style only: A <class>mysqli</class> object
                       returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string</info>      <strong>$query</strong>   The query, as a string. It must consist of a single SQL statement.
                       
                       The SQL statement may contain zero or more parameter markers represented by
                       question mark (<return>?</return>) characters at the appropriate positions.
                       
                       The markers are legal only in certain places in SQL statements. For example,
                       they are permitted in the <return>VALUES()</return> list of an <return>INSERT</return> statement (to specify
                       column values for a row), or in a comparison with a column in a <return>WHERE</return> clause
                       to specify a comparison value. However, they are not permitted for
                       identifiers (such as table or column names).
  <info>array|null</info>  <strong>$params</strong>  An optional list <info>array</info> with as many elements as there are bound parameters in
                       the SQL statement being executed. Each value is treated as a <info>string</info>.

<comment>Return:</comment>
  <info>mysqli_result|bool</info>  Returns <info>false</info> on failure. For successful queries which produce a result set,
                      such as <return>SELECT, SHOW, DESCRIBE</return> or <return>EXPLAIN</return>, returns a <class>mysqli_result</class> object. For
                      other successful queries, returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_execute()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>
   * <strong>mysqli_stmt_get_result()</strong>


id: mysqli::get_charset
type: function
doc:
<comment>Description:</comment>
  Returns a character set object
  
  Object-oriented style
  
  Procedural style
  
  Returns a character set object providing several properties  of the current active character set.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>object|null</info>  The function returns a character set object with the following properties:
               <strong>$charset</strong>Character set name<strong>$collation</strong>Collation name<strong>$dir</strong>Directory the charset
               description was fetched from (?) or "" for built-in character sets<strong>$min_length</strong>Minimum
               character length in bytes<strong>$max_length</strong>Maximum character length in bytes<strong>$number</strong>Internal
               character set number<strong>$state</strong>Character set status (?)
               
               Character set name
               
               Collation name
               
               Directory the charset description was fetched from (?) or "" for built-in character
               sets
               
               Minimum character length in bytes
               
               Maximum character length in bytes
               
               Internal character set number
               
               Character set status (?)

<comment>See Also:</comment>
   * <strong>mysqli_character_set_name()</strong>
   * <strong>mysqli_set_charset()</strong>


id: mysqli::get_client_info
type: function
doc:
<comment>Description:</comment>
  Get MySQL client info
  
  Object-oriented style
  
  Procedural style
  
  Returns a string that represents the MySQL client library version.

<comment>Return:</comment>
  <info>string</info>  A string that represents the MySQL client library version.

<comment>See Also:</comment>
   * <strong>mysqli_get_client_version()</strong>
   * <strong>mysqli_get_server_info()</strong>
   * <strong>mysqli_get_server_version()</strong>


id: mysqli::get_connection_stats
type: function
doc:
<comment>Description:</comment>
  Returns statistics about the client connection
  
  Object-oriented style
  
  Procedural style
  
  Returns statistics about the client connection.
  
  Available only with mysqlnd.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>array</info>  Returns an array with connection stats.

<comment>See Also:</comment>
   * Stats description


id: mysqli::get_server_info
type: function
doc:
<comment>Description:</comment>
  Returns the version of the MySQL server
  
  Object-oriented style
  
  Procedural style
  
  Returns a string representing the version of the MySQL server that the MySQLi extension is
  connected to.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>string</info>  A character string representing the server version.

<comment>See Also:</comment>
   * <strong>mysqli_get_client_info()</strong>
   * <strong>mysqli_get_client_version()</strong>
   * <strong>mysqli_get_server_version()</strong>


id: mysqli::get_warnings
type: function
doc:
<comment>Description:</comment>
  Get result of SHOW WARNINGS
  
  Object-oriented style
  
  Procedural style
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>mysqli_warning|false</info>  


id: mysqli::init
type: function
doc:
<comment>Description:</comment>
  Initializes MySQLi and returns an object for use with mysqli_real_connect()
  
  Object-oriented style
  
  Procedural style
  
  Allocates or initializes a MYSQL object suitable for <strong>mysqli_options()</strong> and <strong>mysqli_real_connect()</strong>.
  
  Any subsequent calls to any mysqli function (except <strong>mysqli_options()</strong> and <strong>mysqli_ssl_set()</strong>) will
  fail until <strong>mysqli_real_connect()</strong> was called.

<comment>Return:</comment>
  <info>bool|null</info>  mysqli::init returns <info>null</info> on success,  or <info>false</info> on failure. <strong>mysqli_init()</strong> returns an
             object on success,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_options()</strong>
   * <strong>mysqli_close()</strong>
   * <strong>mysqli_real_connect()</strong>
   * <strong>mysqli_connect()</strong>


id: mysqli::kill
type: function
doc:
<comment>Description:</comment>
  Asks the server to kill a MySQL thread
  
  Object-oriented style
  
  Procedural style
  
  This function is used to ask the server to kill a MySQL thread specified by the <strong>$process_id</strong>
  parameter. This value must be retrieved by calling the <strong>mysqli_thread_id()</strong> function.
  
  To stop a running query you should use the SQL command <return>KILL QUERY processid</return>.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_thread_id()</strong>


id: mysqli::more_results
type: function
doc:
<comment>Description:</comment>
  Check if there are any more query results from a multi query
  
  Object-oriented style
  
  Procedural style
  
  Indicates if one or more result sets are available from a previous call to <strong>mysqli_multi_query()</strong>.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if one or more result sets (including errors) are available from a previous
        call to <strong>mysqli_multi_query()</strong>, otherwise <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysqli_multi_query()</strong>
   * <strong>mysqli_next_result()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli::multi_query
type: function
doc:
<comment>Description:</comment>
  Performs one or more queries on the database
  
  Object-oriented style
  
  Procedural style
  
  Executes one or multiple queries which are concatenated by a semicolon.
  
  If the query contains any variable
  input then parameterized
  prepared statements should be used instead. Alternatively, the
  data must be properly formatted and all strings must be escaped using
  the <strong>mysqli_real_escape_string()</strong>
  function.
  
  Queries are sent asynchronously in a single call to the database, but the database processes them
  sequentially. mysqli_multi_query waits for the first query to complete before returning control to
  PHP. The MySQL server will then process the next query in the sequence. Once the next result is
  ready, MySQL will wait for the next execution of <strong>mysqli_next_result()</strong> from PHP.
  
  It is recommended to use do-while to process multiple queries. The connection will be busy until
  all queries have completed and their results are fetched to PHP. No other statement can be issued
  on the same connection until all queries are processed. To proceed to the next query in the
  sequence, use <strong>mysqli_next_result()</strong>. If the next result is not ready yet, mysqli will wait for the
  response from the MySQL server. To check if there are more results, use <strong>mysqli_more_results()</strong>.
  
  For queries which produce a result set, such as <return>SELECT, SHOW, DESCRIBE</return> or <return>EXPLAIN</return>,
  <strong>mysqli_use_result()</strong> or <strong>mysqli_store_result()</strong> can be used to retrieve the result set. For queries
  which do not produce a result set, the same functions can be used to retrieve information such as
  the number of affected rows.
  
  Executing <return>CALL</return> statements for stored procedures can produce multiple result sets. If the stored
  procedure contains <return>SELECT</return> statements, the result sets are returned in the order that they are
  produced as the procedure executes. In general, the caller cannot know how many result sets a
  procedure will return and must be prepared to retrieve multiple results. The final result from the
  procedure is a status result that includes no result set. The status indicates whether the
  procedure succeeded or an error occurred.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string</info>  <strong>$query</strong>  A string containing the queries to be executed. Multiple queries must be separated
                  by a semicolon.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>false</info> if the first statement failed. To retrieve subsequent errors from other
        statements you have to call <strong>mysqli_next_result()</strong> first.

<comment>See Also:</comment>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_use_result()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_next_result()</strong>
   * <strong>mysqli_more_results()</strong>


id: mysqli::next_result
type: function
doc:
<comment>Description:</comment>
  Prepare next result from multi_query
  
  Object-oriented style
  
  Procedural style
  
  Prepares next result set from a previous call to  <strong>mysqli_multi_query()</strong> which can be retrieved by
  <strong>mysqli_store_result()</strong> or <strong>mysqli_use_result()</strong>.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure. Also returns <info>false</info> if the next statement
        resulted in an error, unlike mysqli_more_results.

<comment>See Also:</comment>
   * <strong>mysqli_multi_query()</strong>
   * <strong>mysqli_more_results()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli::options
type: function
doc:
<comment>Description:</comment>
  Set options
  
  Object-oriented style
  
  Procedural style
  
  Used to set extra connect options and affect behavior for a connection.
  
  This function may be called multiple times to set several options.
  
  <strong>mysqli_options()</strong> should be called after <strong>mysqli_init()</strong> and before <strong>mysqli_real_connect()</strong>.

<comment>Param:</comment>
  <info>mysqli</info>      <strong>$mysql</strong>   Procedural style only: A <class>mysqli</class> object
                       returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>int</info>         <strong>$option</strong>  The option that you want to set. It can be one of the following values: Valid
                       optionsNameDescription<info>MYSQLI_OPT_CONNECT_TIMEOUT</info>Connection timeout in
                       seconds<info>MYSQLI_OPT_READ_TIMEOUT</info>Command execution result timeout in seconds.
                       Available as of PHP 7.2.0.<info>MYSQLI_OPT_LOCAL_INFILE</info>Enable/disable use of <return>LOAD
                       LOCAL INFILE</return><info>MYSQLI_INIT_COMMAND</info>Command to execute after when connecting to
                       MySQL server<info>MYSQLI_SET_CHARSET_NAME</info>The charset to be set as
                       default.<info>MYSQLI_READ_DEFAULT_FILE</info> Read options from named option file instead
                       of my.cnf Not supported by mysqlnd. <info>MYSQLI_READ_DEFAULT_GROUP</info> Read options
                       from the named group from my.cnf or the file specified with
                       <info>MYSQL_READ_DEFAULT_FILE</info>. Not supported by mysqlnd. <info>MYSQLI_SERVER_PUBLIC_KEY</info>
                       RSA public key file used with the SHA-256 based authentication.
                       <info>MYSQLI_OPT_NET_CMD_BUFFER_SIZE</info> The size of the internal command/network
                       buffer. Only valid for mysqlnd. <info>MYSQLI_OPT_NET_READ_BUFFER_SIZE</info> Maximum read
                       chunk size in bytes when reading the body of a MySQL command packet. Only
                       valid for mysqlnd. <info>MYSQLI_OPT_INT_AND_FLOAT_NATIVE</info> Convert integer and float
                       columns back to PHP numbers when using non-prepared statements. Only valid
                       for mysqlnd. <info>MYSQLI_OPT_SSL_VERIFY_SERVER_CERT</info> Whether to verify server
                       certificate or not.
  <info>string|int</info>  <strong>$value</strong>   The value for the option.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_init()</strong>
   * <strong>mysqli_real_connect()</strong>


id: mysqli::ping
type: function
doc:
<comment>Description:</comment>
  Pings a server connection, or tries to reconnect if the connection has gone down
  
  Object-oriented style
  
  Procedural style
  
  Checks whether the connection to the server is working. If it has gone down and global option
  mysqli.reconnect is enabled, an automatic reconnection is attempted.
  
  The php.ini setting mysqli.reconnect is ignored by the mysqlnd driver, so automatic reconnection
  is never attempted.
  
  This function can be used by clients that remain idle for a long while, to check whether the
  server has closed the connection and reconnect if necessary.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: mysqli::poll
type: function
doc:
<comment>Description:</comment>
  Poll connections
  
  Object-oriented style
  
  Procedural style
  
  Poll connections. The method can be used as static.
  
  Available only with mysqlnd.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$read</strong>          List of connections to check for outstanding results that can be read.
  <info>array|null</info>  <strong>$error</strong>         List of connections on which an error occurred, for example, query
                             failure or lost connection.
  <info>array</info>       <strong>$reject</strong>        List of connections rejected because no asynchronous query has been run
                             on for which the function could poll results.
  <info>int</info>         <strong>$seconds</strong>       Maximum number of seconds to wait, must be non-negative.
  <info>int</info>         <strong>$microseconds</strong>  Maximum number of microseconds to wait, must be non-negative.

<comment>Return:</comment>
  <info>int|false</info>  Returns number of ready connections upon success, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_reap_async_query()</strong>


id: mysqli::prepare
type: function
doc:
<comment>Description:</comment>
  Prepares an SQL statement for execution
  
  Object-oriented style
  
  Procedural style
  
  Prepares the SQL query, and returns a statement handle to be used for further operations on the
  statement. The query must consist of a single SQL statement.
  
  The statement template can contain zero or more question mark (<return>?</return>) parameter markers⁠—also called
  placeholders. The parameter markers must be bound to application variables using
  <strong>mysqli_stmt_bind_param()</strong> before executing the statement.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string</info>  <strong>$query</strong>  The query, as a string. It must consist of a single SQL statement.
                  
                  The SQL statement may contain zero or more parameter markers represented by
                  question mark (<return>?</return>) characters at the appropriate positions.
                  
                  The markers are legal only in certain places in SQL statements. For example, they
                  are permitted in the <return>VALUES()</return> list of an <return>INSERT</return> statement (to specify column
                  values for a row), or in a comparison with a column in a <return>WHERE</return> clause to specify a
                  comparison value. However, they are not permitted for identifiers (such as table
                  or column names).

<comment>Return:</comment>
  <info>mysqli_stmt|false</info>  <strong>mysqli_prepare()</strong> returns a statement object or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_execute()</strong>
   * <strong>mysqli_stmt_fetch()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>
   * <strong>mysqli_stmt_bind_result()</strong>
   * <strong>mysqli_stmt_get_result()</strong>
   * <strong>mysqli_stmt_close()</strong>


id: mysqli::query
type: function
doc:
<comment>Description:</comment>
  Performs a query on the database
  
  Object-oriented style
  
  Procedural style
  
  Performs a <strong>$query</strong> against the database.
  
  If the query contains any variable
  input then parameterized
  prepared statements should be used instead. Alternatively, the
  data must be properly formatted and all strings must be escaped using
  the <strong>mysqli_real_escape_string()</strong>
  function.
  
  For non-DML queries (not INSERT, UPDATE or DELETE), this function is similar to calling
  <strong>mysqli_real_query()</strong> followed by either <strong>mysqli_use_result()</strong> or  <strong>mysqli_store_result()</strong>.
  
  In the case where a statement is passed to <strong>mysqli_query()</strong> that is longer than <return>max_allowed_packet</return>
  of the server, the returned error codes are different depending on whether you are using MySQL
  Native Driver (<return>mysqlnd</return>) or MySQL Client Library (<return>libmysqlclient</return>). The behavior is as follows:
  
  <return>mysqlnd</return> on Linux returns an error code of 1153. The error message means got a packet bigger than
  <return>max_allowed_packet</return> bytes.
  
  <return>mysqlnd</return> on Windows returns an error code 2006. This error message means server has gone away.
  
  <return>libmysqlclient</return> on all platforms returns an error code 2006. This error message means server has
  gone away.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>        Procedural style only: A <class>mysqli</class> object
                        returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string</info>  <strong>$query</strong>        The query string.
  <info>int</info>     <strong>$result_mode</strong>  The result mode can be one of 3 constants indicating how the result will be
                        returned from the MySQL server.
                        
                        <info>MYSQLI_STORE_RESULT</info> (default) - returns a <class>mysqli_result</class> object with buffered
                        result set.
                        
                        <info>MYSQLI_USE_RESULT</info> - returns a <class>mysqli_result</class> object with unbuffered result
                        set.  As long as there are pending records waiting to be fetched, the
                        connection line will be busy and all subsequent calls will return error
                        <return>Commands out of sync</return>. To avoid the error all records  must be fetched from
                        the server or the result set must be discarded by calling
                        <strong>mysqli_free_result()</strong>.
                        
                        <info>MYSQLI_ASYNC</info> (available with mysqlnd) - the query is performed
                        asynchronously and no result set is immediately returned. <strong>mysqli_poll()</strong> is
                        then used to get results from such queries. Used in combination with either
                        <info>MYSQLI_STORE_RESULT</info> or <info>MYSQLI_USE_RESULT</info> constant.

<comment>Return:</comment>
  <info>mysqli_result|bool</info>  Returns <info>false</info> on failure. For successful queries which produce a result set,
                      such as <return>SELECT, SHOW, DESCRIBE</return> or <return>EXPLAIN</return>, <strong>mysqli_query()</strong> will return a
                      <class>mysqli_result</class> object. For other successful queries, <strong>mysqli_query()</strong> will return
                      <info>true</info>.

<comment>See Also:</comment>
   * <strong>mysqli_execute_query()</strong>
   * <strong>mysqli_real_query()</strong>
   * <strong>mysqli_multi_query()</strong>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_free_result()</strong>


id: mysqli::real_connect
type: function
doc:
<comment>Description:</comment>
  Opens a connection to a mysql server
  
  Object-oriented style
  
  Procedural style
  
  Establish a connection to a MySQL database engine.
  
  This function differs from <strong>mysqli_connect()</strong>:
  
  <strong>mysqli_real_connect()</strong> needs a valid object which has to be created by function <strong>mysqli_init()</strong>.
  
  With the <strong>mysqli_options()</strong> function you can set various options for connection.
  
  There is a <strong>$flags</strong> parameter.

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>     Procedural style only: A <class>mysqli</class> object
                          returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string|null</info>  <strong>$hostname</strong>  Can be either a host name or an IP address. When passing <info>null</info>, the value
                          is retrieved from mysqli.default_host. When possible, pipes will be used
                          instead of the TCP/IP protocol. The TCP/IP protocol is used if a host name
                          and port number are provided together e.g. <return>localhost:3308</return>.
  <info>string|null</info>  <strong>$username</strong>  The MySQL username or <info>null</info> to assume the username based on the
                          mysqli.default_user ini option.
  <info>string|null</info>  <strong>$password</strong>  The MySQL password or <info>null</info> to assume the password based on the
                          mysqli.default_pw ini option.
  <info>string|null</info>  <strong>$database</strong>  The default database to be used when performing queries or <info>null</info>.
  <info>int|null</info>     <strong>$port</strong>      The port number to attempt to connect to the MySQL server or <info>null</info> to
                          assume the port based on the mysqli.default_port ini option.
  <info>string|null</info>  <strong>$socket</strong>    The socket or named pipe that should be used or <info>null</info> to assume the socket
                          based on the mysqli.default_socket ini option.
                          
                          Specifying the <strong>$socket</strong> parameter will not explicitly determine the type of
                          connection to be used when connecting to the MySQL server. How the
                          connection is made to the MySQL database is determined by the <strong>$hostname</strong>
                          parameter.
  <info>int</info>          <strong>$flags</strong>     With the parameter <strong>$flags</strong> you can set different connection options:
                          
                          For security reasons the <info>MULTI_STATEMENT</info> flag is not supported in PHP. If
                          you want to execute multiple queries use the <strong>mysqli_multi_query()</strong>
                          function.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_connect()</strong>
   * <strong>mysqli_init()</strong>
   * <strong>mysqli_options()</strong>
   * <strong>mysqli_ssl_set()</strong>
   * <strong>mysqli_close()</strong>


id: mysqli::real_escape_string
type: function
doc:
<comment>Description:</comment>
  Escapes special characters in a string for use in an SQL statement, taking into account the
  current
  charset of the connection
  
  Object-oriented style
  
  Procedural style
  
  This function is used to create a legal SQL string that you can use in an SQL statement. The given
  string is encoded to produce an escaped SQL string, taking into account the current character set
  of the connection.
  
  The character set must be set either at the server level, or with the API function
  <strong>mysqli_set_charset()</strong> for it to affect <strong>mysqli_real_escape_string()</strong>. See the concepts section on
  character sets for more information.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>   Procedural style only: A <class>mysqli</class> object
                   returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string</info>  <strong>$string</strong>  The string to be escaped.
                   
                   Characters encoded are <return>NUL (ASCII 0)</return>, <return>\n</return>, <return>\r</return>, <return>\</return>, <return>'</return>, <return>"</return>, and CTRLZ.

<comment>Return:</comment>
  <info>string</info>  Returns an escaped string.

<comment>See Also:</comment>
   * <strong>mysqli_set_charset()</strong>


id: mysqli::real_query
type: function
doc:
<comment>Description:</comment>
  Execute an SQL query
  
  Object-oriented style
  
  Procedural style
  
  Executes a single query against the database whose result can then be retrieved or stored using
  the <strong>mysqli_store_result()</strong> or <strong>mysqli_use_result()</strong> functions.
  
  If the query contains any variable
  input then parameterized
  prepared statements should be used instead. Alternatively, the
  data must be properly formatted and all strings must be escaped using
  the <strong>mysqli_real_escape_string()</strong>
  function.
  
  In order to determine if a given query should return a result set or not, see
  <strong>mysqli_field_count()</strong>.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string</info>  <strong>$query</strong>  The query string.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli::reap_async_query
type: function
doc:
<comment>Description:</comment>
  Get result from async query
  
  Object-oriented style
  
  Procedural style
  
  Get result from async query.
  
  Available only with mysqlnd.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>mysqli_result|bool</info>  Returns <info>false</info> on failure. For successful queries which produce a result set,
                      such as <return>SELECT, SHOW, DESCRIBE</return> or <return>EXPLAIN</return>, <strong>mysqli_reap_async_query()</strong> will
                      return a <class>mysqli_result</class> object. For other successful queries,
                      <strong>mysqli_reap_async_query()</strong> will return <info>true</info>.

<comment>See Also:</comment>
   * <strong>mysqli_poll()</strong>


id: mysqli::refresh
type: function
doc:
<comment>Description:</comment>
  Refreshes
  
  Object-oriented style
  
  Procedural style
  
  Flushes tables or caches, or resets the replication server information.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>int</info>     <strong>$flags</strong>  The options to refresh, using the MYSQLI_REFRESH_* constants as documented within
                  the MySQLi constants documentation.
                  
                  See also the official MySQL Refresh documentation.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the refresh was a success, otherwise <info>false</info>

<comment>See Also:</comment>
   * <strong>mysqli_poll()</strong>


id: mysqli::release_savepoint
type: function
doc:
<comment>Description:</comment>
  Removes the named savepoint from the set of savepoints of the current transaction
  
  Object-oriented style
  
  Procedural style:
  
  This function is identical to executing $mysqli-&gt;query("RELEASE SAVEPOINT `$name`");. This
  function does not trigger commit or rollback.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string</info>  <strong>$name</strong>   The identifier of the savepoint.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_savepoint()</strong>


id: mysqli::rollback
type: function
doc:
<comment>Description:</comment>
  Rolls back current transaction
  
  Object-oriented style
  
  Procedural style
  
  Rollbacks the current transaction for the database.

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                       returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>int</info>          <strong>$flags</strong>  A bitmask of <info>MYSQLI_TRANS_COR_*</info> constants.
  <info>string|null</info>  <strong>$name</strong>   If provided then <return>ROLLBACK/*name*/</return> is executed.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_begin_transaction()</strong>
   * <strong>mysqli_commit()</strong>
   * <strong>mysqli_autocommit()</strong>
   * <strong>mysqli_release_savepoint()</strong>


id: mysqli::savepoint
type: function
doc:
<comment>Description:</comment>
  Set a named transaction savepoint
  
  Object-oriented style
  
  Procedural style:
  
  This function is identical to executing $mysqli-&gt;query("SAVEPOINT `$name`");

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string</info>  <strong>$name</strong>   The identifier of the savepoint.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_release_savepoint()</strong>


id: mysqli::select_db
type: function
doc:
<comment>Description:</comment>
  Selects the default database for database queries
  
  Object-oriented style
  
  Procedural style
  
  Selects the default database to be used when performing queries against the database connection.
  
  This function should only be used to change the default database for the connection. You can
  select the default database with 4th parameter in  <strong>mysqli_connect()</strong>.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>     Procedural style only: A <class>mysqli</class> object
                     returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string</info>  <strong>$database</strong>  The database name.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_connect()</strong>
   * <strong>mysqli_real_connect()</strong>


id: mysqli::set_charset
type: function
doc:
<comment>Description:</comment>
  Sets the client character set
  
  Object-oriented style
  
  Procedural style
  
  Sets the character set to be used when sending data from and to the database server.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>    Procedural style only: A <class>mysqli</class> object
                    returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string</info>  <strong>$charset</strong>  The desired character set.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_character_set_name()</strong>
   * <strong>mysqli_real_escape_string()</strong>
   * MySQL character set concepts
   * List of character sets that MySQL supports


id: mysqli::set_opt
type: function
doc:
<comment>Description:</comment>
  Alias of mysqli_options
  
  This function is an alias of:  <strong>mysqli_options()</strong>.


id: mysqli::ssl_set
type: function
doc:
<comment>Description:</comment>
  Used for establishing secure connections using SSL
  
  Object-oriented style
  
  Procedural style
  
  Used for establishing secure connections using SSL. It must be called before
  <strong>mysqli_real_connect()</strong>. This function does nothing unless OpenSSL support is enabled.

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>           Procedural style only: A <class>mysqli</class> object
                                returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>string|null</info>  <strong>$key</strong>             The path name to the key file.
  <info>string|null</info>  <strong>$certificate</strong>     The path name to the certificate file.
  <info>string|null</info>  <strong>$ca_certificate</strong>  The path name to the certificate authority file.
  <info>string|null</info>  <strong>$ca_path</strong>         The pathname to a directory that contains trusted SSL CA
                                certificates in PEM format.
  <info>string|null</info>  <strong>$cipher_algos</strong>    A list of allowable ciphers to use for SSL encryption.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>. If SSL setup is incorrect <strong>mysqli_real_connect()</strong> will return an error
        when you attempt to connect.

<comment>See Also:</comment>
   * <strong>mysqli_options()</strong>
   * <strong>mysqli_real_connect()</strong>


id: mysqli::stat
type: function
doc:
<comment>Description:</comment>
  Gets the current system status
  
  Object-oriented style
  
  Procedural style
  
  <strong>mysqli_stat()</strong> returns a string containing information similar to that provided by the 'mysqladmin
  status' command. This includes uptime in seconds and the number of running threads, questions,
  reloads, and open tables.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>string|false</info>  A string describing the server status. <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_get_server_info()</strong>


id: mysqli::stmt_init
type: function
doc:
<comment>Description:</comment>
  Initializes a statement and returns an object for use with mysqli_stmt_prepare
  
  Object-oriented style
  
  Procedural style
  
  Allocates and initializes a statement object suitable for <strong>mysqli_stmt_prepare()</strong>.
  
  Any subsequent calls to any mysqli_stmt function will fail until <strong>mysqli_stmt_prepare()</strong> was called.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>mysqli_stmt|false</info>  Returns an object.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_prepare()</strong>


id: mysqli::store_result
type: function
doc:
<comment>Description:</comment>
  Transfers a result set from the last query
  
  Object-oriented style
  
  Procedural style
  
  Transfers the result set from the last query on the database connection represented by the <strong>$mysql</strong>
  parameter to be used with the <strong>mysqli_data_seek()</strong> function.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>int</info>     <strong>$mode</strong>   The option that you want to set. As of PHP 8.1, this parameter has no effect. It
                  can be one of the following values: Valid
                  optionsNameDescription<info>MYSQLI_STORE_RESULT_COPY_DATA</info>Copy results from the internal
                  mysqlnd buffer into the PHP variables fetched. By default, mysqlnd will use a
                  reference logic to avoid copying and duplicating results held in memory. For
                  certain result sets, for example, result sets with many small rows, the copy
                  approach can reduce the overall memory usage because PHP variables holding results
                  may be released earlier (available with mysqlnd only)

<comment>Return:</comment>
  <info>mysqli_result|false</info>  Returns a buffered result object or <info>false</info> if an error occurred.
                       
                       <strong>mysqli_store_result()</strong> returns <info>false</info> in case the query didn't return a result
                       set (if the query was, for example an INSERT statement). This function also
                       returns <info>false</info> if the reading of the result set failed. You can check if you
                       have got an error by checking if <strong>mysqli_error()</strong> doesn't return an empty
                       string, if <strong>mysqli_errno()</strong> returns a non zero value, or if
                       <strong>mysqli_field_count()</strong> returns a non zero value. Also possible reason for this
                       function returning <info>false</info> after successful call to <strong>mysqli_query()</strong> can be too
                       large result set (memory for it cannot be allocated). If <strong>mysqli_field_count()</strong>
                       returns a non-zero value, the statement should have produced a non-empty
                       result set.

<comment>See Also:</comment>
   * <strong>mysqli_real_query()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli::thread_safe
type: function
doc:
<comment>Description:</comment>
  Returns whether thread safety is given or not
  
  Object-oriented style
  
  Procedural style
  
  Tells whether the client library is compiled as thread-safe.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the client library is thread-safe, otherwise <info>false</info>.


id: mysqli::use_result
type: function
doc:
<comment>Description:</comment>
  Initiate a result set retrieval
  
  Object-oriented style
  
  Procedural style
  
  Used to initiate the retrieval of a result set from the last query executed using the
  <strong>mysqli_real_query()</strong> function on the database connection.
  
  Either this or the <strong>mysqli_store_result()</strong> function must be called before the results of a query can
  be retrieved, and one or the other must be called to prevent the next query on that database
  connection from failing.
  
  The <strong>mysqli_use_result()</strong> function does not transfer the entire result set from the database and
  hence cannot be used functions such as <strong>mysqli_data_seek()</strong> to move to a particular row within the
  set. To use this functionality, the result set must be stored using <strong>mysqli_store_result()</strong>. One
  should not use <strong>mysqli_use_result()</strong> if a lot of processing on the client side is performed, since
  this will tie up the server and prevent other threads from updating any tables from which the data
  is being fetched.

<comment>Return:</comment>
  <info>mysqli_result|false</info>  Returns an unbuffered result object or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_real_query()</strong>
   * <strong>mysqli_store_result()</strong>


id: mysqli_affected_rows
type: function
doc:
<comment>Description:</comment>
  Gets the number of affected rows in a previous MySQL operation
  
  Object-oriented style
  
  Procedural style
  
  Returns the number of rows affected by the last <return>INSERT</return>, <return>UPDATE</return>, <return>REPLACE</return> or  <return>DELETE</return> query. Works
  like <strong>mysqli_num_rows()</strong> for <return>SELECT</return> statements.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>int|string</info>  An integer greater than zero indicates the number of rows affected or retrieved. Zero
              indicates that no records were updated for an  <return>UPDATE</return> statement, no rows matched the
              <return>WHERE</return> clause in the query or that no query has yet been executed. <return>-1</return> indicates that
              the query returned an error or that <strong>mysqli_affected_rows()</strong> was called for an
              unbuffered <return>SELECT</return> query.
              
              If the number of affected rows is greater than the maximum int value (<info>PHP_INT_MAX</info>),
              the number of affected rows will be returned as a string.

<comment>See Also:</comment>
   * <strong>mysqli_num_rows()</strong>
   * <strong>mysqli_info()</strong>


id: mysqli_connect
type: function
doc:
<comment>Description:</comment>
  Alias of mysqli::__construct
  
  This function is an alias of:  mysqli::__construct
  
  If mysqli exception mode is not enabled and a connection fails,  then <strong>mysqli_connect()</strong> returns
  <info>false</info> instead of an object.  The <strong>mysqli_connect_error()</strong> function can be used to fetch the
  connection error.


id: mysqli_connect_errno
type: function
doc:
<comment>Description:</comment>
  Returns the error code from last connect call
  
  Object-oriented style
  
  Procedural style
  
  Returns the error code from the last connection attempt.

<comment>Return:</comment>
  <info>int</info>  An error code for the last connection attempt, if it failed. Zero means no error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_connect()</strong>
   * <strong>mysqli_connect_error()</strong>
   * <strong>mysqli_errno()</strong>
   * <strong>mysqli_error()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: mysqli_connect_error
type: function
doc:
<comment>Description:</comment>
  Returns a description of the last connection error
  
  Object-oriented style
  
  Procedural style
  
  Returns the error message from the last connection attempt.

<comment>Return:</comment>
  <info>string|null</info>  A string that describes the error. <info>null</info> is returned if no error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_connect()</strong>
   * <strong>mysqli_connect_errno()</strong>
   * <strong>mysqli_errno()</strong>
   * <strong>mysqli_error()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: mysqli_data_seek
type: function
doc:
<comment>Description:</comment>
  Adjusts the result pointer to an arbitrary row in the result
  
  Object-oriented style
  
  Procedural style
  
  The <strong>mysqli_data_seek()</strong> function seeks to an arbitrary result pointer specified by the <strong>$offset</strong> in
  the result set.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.
  <info>int</info>            <strong>$offset</strong>  The row offset. Must be between zero and the total number of rows minus
                          one (0..<strong>mysqli_num_rows()</strong> - 1).

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_fetch_row()</strong>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_assoc()</strong>
   * <strong>mysqli_fetch_object()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_num_rows()</strong>


id: mysqli_driver
type: class
doc:
<comment>Description:</comment>
  The <class>mysqli_driver</class> class is an instance of the monostate pattern, i.e. there is only one driver
  which can be accessed though an arbitrary amount of <class>mysqli_driver</class> instances.


id: mysqli_driver::embedded_server_end
type: function
doc:
<comment>Description:</comment>
  Stop embedded server
  
  Object-oriented style
  
  Procedural style
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>void</info>  


id: mysqli_driver::embedded_server_start
type: function
doc:
<comment>Description:</comment>
  Initialize and start embedded server
  
  Object-oriented style
  
  Procedural style
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>bool</info>  


id: mysqli_errno
type: function
doc:
<comment>Description:</comment>
  Returns the error code for the most recent function call
  
  Object-oriented style
  
  Procedural style
  
  Returns the last error code for the most recent MySQLi function call that can succeed or fail.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>int</info>  An error code value for the last call, if it failed. zero means no error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_connect_errno()</strong>
   * <strong>mysqli_connect_error()</strong>
   * <strong>mysqli_error()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: mysqli_error
type: function
doc:
<comment>Description:</comment>
  Returns a string description of the last error
  
  Object-oriented style
  
  Procedural style
  
  Returns the last error message for the most recent MySQLi function call that can succeed or fail.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>string</info>  A string that describes the error. An empty string if no error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_connect_errno()</strong>
   * <strong>mysqli_connect_error()</strong>
   * <strong>mysqli_errno()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: mysqli_error_list
type: function
doc:
<comment>Description:</comment>
  Returns a list of errors from the last command executed
  
  Object-oriented style
  
  Procedural style
  
  Returns a array of errors for the most recent MySQLi function call that can succeed or fail.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>array</info>  A list of errors, each as an associative <info>array</info> containing the errno, error, and sqlstate.

<comment>See Also:</comment>
   * <strong>mysqli_connect_errno()</strong>
   * <strong>mysqli_connect_error()</strong>
   * <strong>mysqli_error()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: mysqli_execute
type: function
doc:
<comment>Description:</comment>
  Alias of mysqli_stmt_execute
  
  This function is an alias of:  <strong>mysqli_stmt_execute()</strong>.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_execute()</strong>


id: mysqli_fetch_all
type: function
doc:
<comment>Description:</comment>
  Fetch all result rows as an associative array, a numeric array, or both
  
  Object-oriented style
  
  Procedural style
  
  Returns a two-dimensional array of all result rows  as an associative array, a numeric array, or
  both.
  
  Prior to PHP 8.1.0, available only with mysqlnd.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.
  <info>int</info>            <strong>$mode</strong>    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 <info>MYSQLI_ASSOC</info>, <info>MYSQLI_NUM</info>, or <info>MYSQLI_BOTH</info>.

<comment>Return:</comment>
  <info>array</info>  Returns an array of associative or numeric arrays holding result rows.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_column()</strong>
   * <strong>mysqli_query()</strong>


id: mysqli_fetch_array
type: function
doc:
<comment>Description:</comment>
  Fetch the next row of a result set as an associative, a numeric array, or both
  
  Object-oriented style
  
  Procedural style
  
  Fetches one row of data from the result set and returns it as an array. Each subsequent call to
  this function will return the next row within the result set, or <info>null</info> if there are no more rows.
  
  In addition to storing the data in the numeric indices of the result array,  this function can
  also store the data in associative indices  by using the field names of the result set as keys.
  
  If two or more columns of the result have the same name, the last column will take precedence and
  overwrite any previous data. To access multiple columns with the same name, the numerically
  indexed version of the row must be used.
  
  Field names returned by this function
  are case-sensitive.
  
  This function sets NULL fields to
  the PHP <info>null</info> value.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.
  <info>int</info>            <strong>$mode</strong>    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 <info>MYSQLI_ASSOC</info>, <info>MYSQLI_NUM</info>, or <info>MYSQLI_BOTH</info>.
                          
                          By using the <info>MYSQLI_ASSOC</info> constant this function will behave identically
                          to the <strong>mysqli_fetch_assoc()</strong>, while <info>MYSQLI_NUM</info> will behave identically to
                          the <strong>mysqli_fetch_row()</strong> function. The final option  <info>MYSQLI_BOTH</info> will create
                          a single array with the attributes of both.

<comment>Return:</comment>
  <info>array|null|false</info>  Returns an array representing the fetched row, <info>null</info> if there are no more rows in
                    the result set,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_assoc()</strong>
   * <strong>mysqli_fetch_column()</strong>
   * <strong>mysqli_fetch_row()</strong>
   * <strong>mysqli_fetch_object()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_fetch_assoc
type: function
doc:
<comment>Description:</comment>
  Fetch the next row of a result set as an associative array
  
  Object-oriented style
  
  Procedural style
  
  Fetches one row of data from the result set and returns it as an associative array. Each
  subsequent call to this function will return the next row within the result set, or <info>null</info> if there
  are no more rows.
  
  If two or more columns of the result have the same name, the last column will take precedence and
  overwrite any previous data. To access multiple columns with the same name, <strong>mysqli_fetch_row()</strong> may
  be used to fetch the numerically indexed array, or aliases may be used in the SQL query select
  list to give columns different names.
  
  Field names returned by this function
  are case-sensitive.
  
  This function sets NULL fields to
  the PHP <info>null</info> value.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.

<comment>Return:</comment>
  <info>array|null|false</info>  Returns an associative array representing the fetched row, where each key in the
                    array represents the name of one of the result set's columns, <info>null</info> if there are
                    no more rows in the result set,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_column()</strong>
   * <strong>mysqli_fetch_row()</strong>
   * <strong>mysqli_fetch_object()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_fetch_column
type: function
doc:
<comment>Description:</comment>
  Fetch a single column from the next row of a result set
  
  Object-oriented style
  
  Procedural style
  
  Fetches one row of data from the result set and returns the 0-indexed column. Each subsequent call
  to this function will return the value from the next row within the result set, or <info>false</info> if there
  are no more rows.
  
  This function sets NULL fields to
  the PHP <info>null</info> value.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.
  <info>int</info>            <strong>$column</strong>  0-indexed number of the column you wish to retrieve from the row. If no
                          value is supplied, the first column will be returned.

<comment>Return:</comment>
  <info>null|int|float|string|false</info>  Returns a single column from the next row of a result set or <info>false</info> if
                               there are no more rows.
                               
                               There is no way to return another column from the same row if you use
                               this function to retrieve data.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_all()</strong>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_assoc()</strong>
   * <strong>mysqli_fetch_object()</strong>
   * <strong>mysqli_fetch_row()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_fetch_field
type: function
doc:
<comment>Description:</comment>
  Returns the next field in the result set
  
  Object-oriented style
  
  Procedural style
  
  Returns the definition of one column of a result set as an object. Call this function repeatedly
  to retrieve information about all columns in the result set.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.

<comment>Return:</comment>
  <info>object|false</info>  Returns an object which contains field definition information or <info>false</info> if no field
                information is available.
                
                Object propertiesPropertyDescriptionnameThe name of the columnorgnameOriginal column
                name if an alias was specifiedtableThe name of the table this field belongs to (if
                not calculated)orgtableOriginal table name if an alias was specifieddefReserved for
                default value, currently always ""dbThe name of the databasecatalogThe catalog name,
                always "def"max_lengthThe maximum width of the field for the result set.lengthThe
                width of the field, as specified in the table definition.charsetnrThe character set
                number for the field.flagsAn integer representing the bit-flags for the
                field.typeThe data type used for this fielddecimalsThe number of decimals used (for
                integer fields)

<comment>See Also:</comment>
   * <strong>mysqli_num_fields()</strong>
   * <strong>mysqli_fetch_field_direct()</strong>
   * <strong>mysqli_fetch_fields()</strong>
   * <strong>mysqli_field_seek()</strong>


id: mysqli_fetch_field_direct
type: function
doc:
<comment>Description:</comment>
  Fetch meta-data for a single field
  
  Object-oriented style
  
  Procedural style
  
  Returns an object which contains field definition information from the specified result set.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.
  <info>int</info>            <strong>$index</strong>   The field number. This value must be in the range from <return>0</return> to <return>number of
                          fields - 1</return>.

<comment>Return:</comment>
  <info>object|false</info>  Returns an object which contains field definition information or <info>false</info> if no field
                information for specified <strong>$index</strong> is available.
                
                Object attributesAttributeDescriptionnameThe name of the columnorgnameOriginal
                column name if an alias was specifiedtableThe name of the table this field belongs
                to (if not calculated)orgtableOriginal table name if an alias was specifieddefThe
                default value for this field, represented as a stringmax_lengthThe maximum width of
                the field for the result set. As of PHP 8.1, this value is always <return>0</return>.lengthThe width
                of the field, as specified in the table definition.charsetnrThe character set number
                for the field.flagsAn integer representing the bit-flags for the field.typeThe data
                type used for this fielddecimalsThe number of decimals used (for numeric fields)

<comment>See Also:</comment>
   * <strong>mysqli_num_fields()</strong>
   * <strong>mysqli_fetch_field()</strong>
   * <strong>mysqli_fetch_fields()</strong>


id: mysqli_fetch_fields
type: function
doc:
<comment>Description:</comment>
  Returns an array of objects representing the fields in a result set
  
  Object-oriented style
  
  Procedural style
  
  This function serves an identical purpose to the  <strong>mysqli_fetch_field()</strong> function with the single
  difference that, instead of returning one object at a time for each field, the columns are
  returned as an array of objects.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.

<comment>Return:</comment>
  <info>array</info>  Returns an array of objects containing field definition information.
         
         Object propertiesPropertyDescriptionnameThe name of the columnorgnameOriginal column name
         if an alias was specifiedtableThe name of the table this field belongs to (if not
         calculated)orgtableOriginal table name if an alias was specifiedmax_lengthThe maximum width
         of the field for the result set. As of PHP 8.1, this value is always <return>0</return>.length The width of
         the field, in bytes, as specified in the table definition. Note that  this number (bytes)
         might differ from your table definition value (characters), depending on the character set
         you use. For example, the character set utf8 has 3 bytes per character,  so varchar(10)
         will return a length of 30 for utf8 (10*3), but return 10 for latin1 (10*1). charsetnrThe
         character set number (id) for the field.flagsAn integer representing the bit-flags for the
         field.typeThe data type used for this fielddecimalsThe number of decimals used (for integer
         fields)

<comment>See Also:</comment>
   * <strong>mysqli_num_fields()</strong>
   * <strong>mysqli_fetch_field_direct()</strong>
   * <strong>mysqli_fetch_field()</strong>


id: mysqli_fetch_lengths
type: function
doc:
<comment>Description:</comment>
  Returns the lengths of the columns of the current row in the result set
  
  Object-oriented style
  
  Procedural style
  
  The <strong>mysqli_fetch_lengths()</strong> function returns an array containing the lengths of every column of the
  current row within the result set.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.

<comment>Return:</comment>
  <info>array|false</info>  An array of integers representing the size of each column (not including any
               terminating null characters). <info>false</info> if an error occurred.
               
               <strong>mysqli_fetch_lengths()</strong> is valid only for the current row of the result set. It
               returns <info>false</info> if you call it before calling mysqli_fetch_row/array/object or after
               retrieving all rows in the result.


id: mysqli_fetch_object
type: function
doc:
<comment>Description:</comment>
  Fetch the next row of a result set as an object
  
  Object-oriented style
  
  Procedural style
  
  Fetches one row of data from the result set and returns it as an object, where each property
  represents the name of the result set's column. Each subsequent call to this function will return
  the next row within the result set, or <info>null</info> if there are no more rows.
  
  If two or more columns of the result have the same name, the last column will take precedence and
  overwrite any previous data. To access multiple columns with the same name, <strong>mysqli_fetch_row()</strong> may
  be used to fetch the numerically indexed array, or aliases may be used in the SQL query select
  list to give columns different names.
  
  This function sets the properties of the object before calling the object constructor.
  
  Field names returned by this function
  are case-sensitive.
  
  This function sets NULL fields to
  the PHP <info>null</info> value.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>            Procedural style only: A <class>mysqli_result</class>
                                    object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                                    <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.
  <info>string</info>         <strong>$class</strong>             The name of the class to instantiate, set the properties of and
                                    return. If not specified, a <class>stdClass</class> object is returned.
  <info>array</info>          <strong>$constructor_args</strong>  An optional <info>array</info> of parameters to pass to the constructor for
                                    <strong>$class</strong> objects.

<comment>Return:</comment>
  <info>object|null|false</info>  Returns an object representing the fetched row, where each property represents
                     the name of the result set's column, <info>null</info> if there are no more rows in the
                     result set,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_assoc()</strong>
   * <strong>mysqli_fetch_column()</strong>
   * <strong>mysqli_fetch_row()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_fetch_row
type: function
doc:
<comment>Description:</comment>
  Fetch the next row of a result set as an enumerated array
  
  Object-oriented style
  
  Procedural style
  
  Fetches one row of data from the result set and returns it as an enumerated array, where each
  column is stored in an array offset starting from 0 (zero). Each subsequent call to this function
  will return the next row within the result set, or <info>null</info> if there are no more rows.
  
  This function sets NULL fields to
  the PHP <info>null</info> value.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.

<comment>Return:</comment>
  <info>array|null|false</info>  Returns an enumerated array representing the fetched row, <info>null</info> if there are no
                    more rows in the result set,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_assoc()</strong>
   * <strong>mysqli_fetch_column()</strong>
   * <strong>mysqli_fetch_object()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_field_count
type: function
doc:
<comment>Description:</comment>
  Returns the number of columns for the most recent query
  
  Object-oriented style
  
  Procedural style
  
  Returns the number of columns for the most recent query on the connection represented by the
  <strong>$mysql</strong> parameter. This function can be useful when using the <strong>mysqli_store_result()</strong> function to
  determine if the query should have produced a non-empty result set or not without knowing the
  nature of the query.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>int</info>  An integer representing the number of fields in a result set.


id: mysqli_field_seek
type: function
doc:
<comment>Description:</comment>
  Set result pointer to a specified field offset
  
  Object-oriented style
  
  Procedural style
  
  Sets the field cursor to the given offset. The next call to  <strong>mysqli_fetch_field()</strong> will retrieve
  the field definition of the column associated with that offset.
  
  To seek to the beginning of a row, pass an offset value of zero.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.
  <info>int</info>            <strong>$index</strong>   The field number. This value must be in the range from  <return>0</return> to <return>number of
                          fields - 1</return>.

<comment>Return:</comment>
  <info>bool</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_field()</strong>


id: mysqli_field_tell
type: function
doc:
<comment>Description:</comment>
  Get current field offset of a result pointer
  
  Object-oriented style
  
  Procedural style
  
  Returns the position of the field cursor used for the last <strong>mysqli_fetch_field()</strong> call. This value
  can be used as an argument to <strong>mysqli_field_seek()</strong>.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns current offset of field cursor.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_field()</strong>
   * <strong>mysqli_field_seek()</strong>


id: mysqli_free_result
type: function
doc:
<comment>Description:</comment>
  Frees the memory associated with a result
  
  Object-oriented style
  
  Procedural style
  
  Frees the memory associated with the result.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_stmt_get_result()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli_get_client_stats
type: function
doc:
<comment>Description:</comment>
  Returns client per-process statistics
  
  Returns client per-process statistics.
  
  Available only with mysqlnd.

<comment>Return:</comment>
  <info>array</info>  Returns an array with client stats.

<comment>See Also:</comment>
   * Stats description


id: mysqli_get_client_version
type: function
doc:
<comment>Description:</comment>
  Returns the MySQL client version as an integer
  
  Object-oriented style
  
  Procedural style
  
  Returns client version number as an integer.

<comment>Return:</comment>
  <info>int</info>  A number that represents the MySQL client library version in format: <return>main_version*10000 +
       minor_version *100 + sub_version</return>. For example, 4.1.0 is returned as 40100.
       
       This is useful to quickly determine the version of the client library to know if some
       capability exists.

<comment>See Also:</comment>
   * <strong>mysqli_get_client_info()</strong>
   * <strong>mysqli_get_server_info()</strong>
   * <strong>mysqli_get_server_version()</strong>


id: mysqli_get_host_info
type: function
doc:
<comment>Description:</comment>
  Returns a string representing the type of connection used
  
  Object-oriented style
  
  Procedural style
  
  Returns a string describing the connection represented by the <strong>$mysql</strong> parameter (including the
  server host name).

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>string</info>  A character string representing the server hostname and the connection type.

<comment>See Also:</comment>
   * <strong>mysqli_get_proto_info()</strong>


id: mysqli_get_links_stats
type: function
doc:
<comment>Description:</comment>
  Return information about open and cached links
  
  <strong>mysqli_get_links_stats()</strong> returns information about open and cached MySQL links.

<comment>Return:</comment>
  <info>array</info>  <strong>mysqli_get_links_stats()</strong> returns an associative array with three elements, keyed as
         follows: <strong>$total</strong> An <info>int</info> indicating the total number of open links in any state.
         <strong>$active_plinks</strong> An <info>int</info> representing the number of active persistent connections.
         <strong>$cached_plinks</strong> An <info>int</info> representing the number of inactive persistent connections.
         
         An <info>int</info> indicating the total number of open links in any state.
         
         An <info>int</info> representing the number of active persistent connections.
         
         An <info>int</info> representing the number of inactive persistent connections.


id: mysqli_get_proto_info
type: function
doc:
<comment>Description:</comment>
  Returns the version of the MySQL protocol used
  
  Object-oriented style
  
  Procedural style
  
  Returns an integer representing the MySQL protocol version used by the connection represented by
  the <strong>$mysql</strong> parameter.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>int</info>  Returns an integer representing the protocol version.

<comment>See Also:</comment>
   * <strong>mysqli_get_host_info()</strong>


id: mysqli_get_server_version
type: function
doc:
<comment>Description:</comment>
  Returns the version of the MySQL server as an integer
  
  Object-oriented style
  
  Procedural style
  
  The <strong>mysqli_get_server_version()</strong> function returns the version of the server connected to
  (represented by the <strong>$mysql</strong> parameter) as an integer.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>int</info>  An integer representing the server version.
       
       The form of this version number is <return>main_version * 10000 + minor_version * 100 + sub_version</return>
       (i.e. version 4.1.0 is 40100).

<comment>See Also:</comment>
   * <strong>mysqli_get_client_info()</strong>
   * <strong>mysqli_get_client_version()</strong>
   * <strong>mysqli_get_server_info()</strong>


id: mysqli_info
type: function
doc:
<comment>Description:</comment>
  Retrieves information about the most recently executed query
  
  Object-oriented style
  
  Procedural style
  
  The <strong>mysqli_info()</strong> function returns a string providing information about the last query executed.
  The nature of this string is provided below:
  
  Possible mysqli_info return valuesQuery typeExample result stringINSERT INTO...SELECT...Records:
  100 Duplicates: 0 Warnings: 0INSERT INTO...VALUES (...),(...),(...)Records: 3 Duplicates: 0
  Warnings: 0LOAD DATA INFILE ...Records: 1 Deleted: 0 Skipped: 0 Warnings: 0ALTER TABLE ...Records:
  3 Duplicates: 0 Warnings: 0UPDATE ...Rows matched: 40 Changed: 40 Warnings: 0
  
  Queries which do not fall into one of the preceding formats are not supported. In these
  situations, <strong>mysqli_info()</strong> will return an empty string.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>string|null</info>  A character string representing additional information about the most recently
               executed query.

<comment>See Also:</comment>
   * <strong>mysqli_affected_rows()</strong>
   * <strong>mysqli_warning_count()</strong>
   * <strong>mysqli_num_rows()</strong>


id: mysqli_insert_id
type: function
doc:
<comment>Description:</comment>
  Returns the value generated for an AUTO_INCREMENT column by the last query
  
  Object-oriented style
  
  Procedural style
  
  Returns the ID generated by an <return>INSERT</return> or <return>UPDATE</return> query on a table with a column having the
  <return>AUTO_INCREMENT</return> attribute. In the case of a multiple-row <return>INSERT</return> statement, it returns the first
  automatically generated value that was successfully inserted.
  
  Performing an <return>INSERT</return> or <return>UPDATE</return> statement using the <return>LAST_INSERT_ID()</return> MySQL function will also
  modify the value returned by <strong>mysqli_insert_id()</strong>. If <return>LAST_INSERT_ID(expr)</return> was used to generate the
  value of <return>AUTO_INCREMENT</return>, it returns the value of the last <return>expr</return> instead of the generated
  <return>AUTO_INCREMENT</return> value.
  
  Returns <return>0</return> if the previous statement did not change an  <return>AUTO_INCREMENT</return> value. <strong>mysqli_insert_id()</strong>
  must be called immediately after the statement that generated the value.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>int|string</info>  The value of the <return>AUTO_INCREMENT</return> field that was updated by the previous query. Returns
              zero if there was no previous query on the connection or if the query did not update
              an <return>AUTO_INCREMENT</return> value.
              
              Only statements issued using the current connection affect the return value. The value
              is not affected by statements issued using other connections or clients.
              
              If the number is greater than the maximum int value, it will be returned as a string.


id: mysqli_num_fields
type: function
doc:
<comment>Description:</comment>
  Gets the number of fields in the result set
  
  Object-oriented style
  
  Procedural style
  
  Returns the number of fields in the result set.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.

<comment>Return:</comment>
  <info>int</info>  An <info>int</info> representing the number of fields.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_field()</strong>


id: mysqli_num_rows
type: function
doc:
<comment>Description:</comment>
  Gets the number of rows in the result set
  
  Object-oriented style
  
  Procedural style
  
  Returns the number of rows in the result set.
  
  The behaviour of <strong>mysqli_num_rows()</strong> depends on whether buffered or unbuffered result sets are being
  used. This function returns <return>0</return> for unbuffered result sets unless all rows have been fetched from
  the server.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  Procedural style only: A <class>mysqli_result</class>
                          object returned by <strong>mysqli_query()</strong>, <strong>mysqli_store_result()</strong>,
                          <strong>mysqli_use_result()</strong> or <strong>mysqli_stmt_get_result()</strong>.

<comment>Return:</comment>
  <info>int|string</info>  An <info>int</info> representing the number of fetched rows. Returns <return>0</return> in unbuffered mode unless
              all rows have been fetched from the server.
              
              If the number of rows is greater than <info>PHP_INT_MAX</info>,
              the number will be returned as a <info>string</info>.

<comment>See Also:</comment>
   * <strong>mysqli_affected_rows()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_stmt_num_rows()</strong>


id: mysqli_report
type: function
doc:
<comment>Description:</comment>
  Alias of mysqli_driver->report_mode
  
  This function is an alias of:  mysqli_driver-&gt;report_mode


id: mysqli_result
type: class
doc:
<comment>Description:</comment>
  Represents the result set obtained from a query against the database.


id: mysqli_result::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a mysqli_result object
  
  This method constructs a new <class>mysqli_result</class> object.
  
  It can be used to create the <class>mysqli_result</class> object after calling the <strong>mysqli_real_query()</strong> or
  <strong>mysqli_multi_query()</strong> function. Constructing the object manually is equivalent to calling the
  <strong>mysqli_store_result()</strong> or <strong>mysqli_use_result()</strong> function.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>        Procedural style only: A <class>mysqli</class> object
                        returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>
  <info>int</info>     <strong>$result_mode</strong>  The result mode can be one of 2 constants indicating how the result will be
                        returned from the MySQL server.
                        
                        <info>MYSQLI_STORE_RESULT</info> (default) - creates a <class>mysqli_result</class> object with buffered
                        result set.
                        
                        <info>MYSQLI_USE_RESULT</info> - creates a <class>mysqli_result</class> object with unbuffered result
                        set.  As long as there are pending records waiting to be fetched, the
                        connection line will be busy and all subsequent calls will return error
                        <return>Commands out of sync</return>. To avoid the error all records  must be fetched from
                        the server or the result set must be discarded by calling
                        <strong>mysqli_free_result()</strong>. The connection must remain open for the rows to be
                        fetched.

<comment>See Also:</comment>
   * <strong>mysqli_multi_query()</strong>
   * <strong>mysqli_real_query()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli_result::getIterator
type: function
doc:
<comment>Description:</comment>
  Retrieve an external iterator
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>Iterator</info>  


id: mysqli_sql_exception::getSqlState
type: function
doc:
<comment>Description:</comment>
  Returns the SQLSTATE error code
  
  Returns a string containing the SQLSTATE error code for the last error. The error code consists of
  five characters. The values are specified by ANSI SQL and ODBC. For a list of possible values, see
  http://dev.mysql.com/doc/mysql/en/error-handling.html.
  
  Note that not all MySQL errors are yet mapped to SQLSTATE's. The value <return>HY000</return> (general error) is
  used for unmapped errors.

<comment>Return:</comment>
  <info>string</info>  Returns a string containing the SQLSTATE error code for the last error. The error code
          consists of five characters.


id: mysqli_sqlstate
type: function
doc:
<comment>Description:</comment>
  Returns the SQLSTATE error from previous MySQL operation
  
  Object-oriented style
  
  Procedural style
  
  Returns a string containing the SQLSTATE error code for the last error. The error code consists of
  five characters. <return>'00000'</return> means no error. The values are specified by ANSI SQL and ODBC. For a list
  of possible values, see http://dev.mysql.com/doc/mysql/en/error-handling.html.
  
  Note that not all MySQL errors are yet mapped to SQLSTATE's. The value <return>HY000</return> (general error) is
  used for unmapped errors.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>string</info>  Returns a string containing the SQLSTATE error code for the last error. The error code
          consists of five characters. <return>'00000'</return> means no error.

<comment>See Also:</comment>
   * <strong>mysqli_errno()</strong>
   * <strong>mysqli_error()</strong>


id: mysqli_stmt::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a new mysqli_stmt object
  
  This method constructs a new <class>mysqli_stmt</class> object.

<comment>Param:</comment>
  <info></info>             <strong>$link</strong>   A valid <class>mysqli</class> object.
  <info>string|null</info>  <strong>$query</strong>  The query, as a string. If this parameter is <info>null</info>, then the constructor
                       behaves identically to <strong>mysqli_stmt_init()</strong>, otherwise it behaves as per
                       <strong>mysqli_prepare()</strong>.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_init()</strong>


id: mysqli_stmt::attr_get
type: function
doc:
<comment>Description:</comment>
  Used to get the current value of a statement attribute
  
  Object-oriented style
  
  Procedural style
  
  Gets the current value of a statement attribute.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.
  <info>int</info>          <strong>$attribute</strong>  The attribute that you want to get.

<comment>Return:</comment>
  <info>int</info>  Returns the value of the attribute.


id: mysqli_stmt::attr_set
type: function
doc:
<comment>Description:</comment>
  Used to modify the behavior of a prepared statement
  
  Object-oriented style
  
  Procedural style
  
  Used to modify the behavior of a prepared statement. This function may be called multiple times to
  set several attributes.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.
  <info>int</info>          <strong>$attribute</strong>  The attribute that you want to set. It can have one of the following
                           values: Attribute
                           valuesCharacterDescriptionMYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH Setting to
                           <info>true</info> causes <strong>mysqli_stmt_store_result()</strong> to update the metadata
                           <return>MYSQL_FIELD-&gt;max_length</return> value. MYSQLI_STMT_ATTR_CURSOR_TYPE Type of
                           cursor to open for statement when <strong>mysqli_stmt_execute()</strong> is invoked.
                           <strong>$value</strong> can be <return>MYSQLI_CURSOR_TYPE_NO_CURSOR</return> (the default) or
                           <return>MYSQLI_CURSOR_TYPE_READ_ONLY</return>. MYSQLI_STMT_ATTR_PREFETCH_ROWS Number of
                           rows to fetch from server at a time when using a cursor. <strong>$value</strong> can be in
                           the range from 1 to the maximum value of unsigned long. The default is 1.
                           
                           If you use the <return>MYSQLI_STMT_ATTR_CURSOR_TYPE</return> option with
                           <return>MYSQLI_CURSOR_TYPE_READ_ONLY</return>, a cursor is opened for the statement when
                           you invoke <strong>mysqli_stmt_execute()</strong>. If there is already an open cursor from
                           a previous <strong>mysqli_stmt_execute()</strong> call, it closes the cursor before
                           opening a new one. <strong>mysqli_stmt_reset()</strong> also closes any open cursor before
                           preparing the statement for re-execution. <strong>mysqli_stmt_free_result()</strong>
                           closes any open cursor.
                           
                           If you open a cursor for a prepared statement, <strong>mysqli_stmt_store_result()</strong>
                           is unnecessary.
  <info>int</info>          <strong>$value</strong>      The value to assign to the attribute.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * Connector/MySQL mysql_stmt_attr_set()


id: mysqli_stmt::bind_param
type: function
doc:
<comment>Description:</comment>
  Binds variables to a prepared statement as parameters
  
  Object-oriented style
  
  Procedural style
  
  Bind variables for the parameter markers in the SQL statement prepared by <strong>mysqli_prepare()</strong> or
  <strong>mysqli_stmt_prepare()</strong>.
  
  If data size of a variable exceeds max. allowed packet size (max_allowed_packet), you have to
  specify <return>b</return> in <strong>$types</strong> and use <strong>mysqli_stmt_send_long_data()</strong> to send the data in packets.
  
  Care must be taken when using <strong>mysqli_stmt_bind_param()</strong> in conjunction with <strong>call_user_func_array()</strong>.
  Note that <strong>mysqli_stmt_bind_param()</strong> requires parameters to be passed by reference, whereas
  <strong>call_user_func_array()</strong> can accept as a parameter a list of variables that can represent references
  or values.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.
  <info>string</info>       <strong>$types</strong>      A string that contains one or more characters which specify the types for
                           the corresponding bind variables: Type specification
                           charsCharacterDescriptionicorresponding variable has type
                           <info>int</info>dcorresponding variable has type <info>float</info>scorresponding variable has type
                           <info>string</info>bcorresponding variable is a blob and will be sent in packets
  <info>mixed</info>        <strong>$var</strong>        The number of variables and length of string  <strong>$types</strong> must match the
                           parameters in the statement.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_bind_result()</strong>
   * <strong>mysqli_stmt_execute()</strong>
   * <strong>mysqli_stmt_fetch()</strong>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_send_long_data()</strong>
   * <strong>mysqli_stmt_errno()</strong>
   * <strong>mysqli_stmt_error()</strong>


id: mysqli_stmt::bind_result
type: function
doc:
<comment>Description:</comment>
  Binds variables to a prepared statement for result storage
  
  Object-oriented style
  
  Procedural style
  
  Binds columns in the result set to variables.
  
  When <strong>mysqli_stmt_fetch()</strong> is called to fetch data, the MySQL client/server protocol places the data
  for the bound columns into the specified variables <strong>$var</strong>/<strong>$vars</strong>.
  
  A column can be bound or rebound at any time, even after a result set has been partially
  retrieved. The new binding takes effect the next time  <strong>mysqli_stmt_fetch()</strong> is called.
  
  All columns must be bound after  <strong>mysqli_stmt_execute()</strong> and prior to calling <strong>mysqli_stmt_fetch()</strong>.
  
  Depending on column types bound variables can silently change to the corresponding PHP type.
  
  This function is useful for simple results. To retrieve iterable result set, or fetch each row as
  an array or object, use <strong>mysqli_stmt_get_result()</strong>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.
  <info>mixed</info>        <strong>$var</strong>        The first variable to be bound.
  <info>mixed</info>        <strong>$vars</strong>       Further variables to be bound.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_get_result()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>
   * <strong>mysqli_stmt_execute()</strong>
   * <strong>mysqli_stmt_fetch()</strong>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_prepare()</strong>


id: mysqli_stmt::close
type: function
doc:
<comment>Description:</comment>
  Closes a prepared statement
  
  Object-oriented style
  
  Procedural style
  
  Closes a prepared statement. <strong>mysqli_stmt_close()</strong> also deallocates the statement handle. If the
  current statement has pending or unread results, this function cancels them so that the next query
  can be executed.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>


id: mysqli_stmt::data_seek
type: function
doc:
<comment>Description:</comment>
  Adjusts the result pointer to an arbitrary row in the buffered result
  
  Object-oriented style
  
  Procedural style
  
  This function moves the result set pointer of the buffered result set to an arbitrary row
  specified by the <strong>$offset</strong> parameter.
  
  This function works only on the buffered internal result set. <strong>mysqli_stmt_store_result()</strong> must be
  called prior to <strong>mysqli_stmt_data_seek()</strong>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.
  <info>int</info>          <strong>$offset</strong>     Must be between zero and the total number of rows minus one (0..
                           <strong>mysqli_stmt_num_rows()</strong> - 1).

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_store_result()</strong>
   * <strong>mysqli_stmt_num_rows()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_stmt::execute
type: function
doc:
<comment>Description:</comment>
  Executes a prepared statement
  
  Object-oriented style
  
  Procedural style
  
  Executes previously prepared statement. The statement must be successfully  prepared prior to
  execution, using either the <strong>mysqli_prepare()</strong> or <strong>mysqli_stmt_prepare()</strong> function, or by passing the
  second argument to mysqli_stmt::__construct.
  
  If the statement is <return>UPDATE</return>, <return>DELETE</return>, or <return>INSERT</return>, the total number of affected rows can be determined
  by using the <strong>mysqli_stmt_affected_rows()</strong> function. If the query yields a result set, it can be
  fetched using <strong>mysqli_stmt_get_result()</strong> function or by fetching it row by row directly from the
  statement using <strong>mysqli_stmt_fetch()</strong> function.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.
  <info>array|null</info>   <strong>$params</strong>     An optional list <info>array</info> with as many elements as there are bound
                           parameters in the SQL statement being executed. Each value is treated as
                           a <info>string</info>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_execute_query()</strong>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>
   * <strong>mysqli_stmt_get_result()</strong>


id: mysqli_stmt::fetch
type: function
doc:
<comment>Description:</comment>
  Fetch results from a prepared statement into the bound variables
  
  Object-oriented style
  
  Procedural style
  
  Fetch the result from a prepared statement into the variables bound by <strong>mysqli_stmt_bind_result()</strong>.
  
  Note that all columns must be bound by the application before calling <strong>mysqli_stmt_fetch()</strong>.
  
  Data are transferred unbuffered without calling <strong>mysqli_stmt_store_result()</strong> which can decrease
  performance (but reduces memory cost).

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>bool|null</info>  

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_errno()</strong>
   * <strong>mysqli_stmt_error()</strong>
   * <strong>mysqli_stmt_bind_result()</strong>


id: mysqli_stmt::free_result
type: function
doc:
<comment>Description:</comment>
  Frees stored result memory for the given statement handle
  
  Object-oriented style
  
  Procedural style
  
  Frees the result memory associated with the statement, which was allocated by
  <strong>mysqli_stmt_store_result()</strong>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_store_result()</strong>


id: mysqli_stmt::get_result
type: function
doc:
<comment>Description:</comment>
  Gets a result set from a prepared statement as a mysqli_result object
  
  Object-oriented style
  
  Procedural style
  
  Retrieves a result set from a prepared statement as a <class>mysqli_result</class> object. The data will be
  fetched from the MySQL server to PHP. This method should be called only for queries which produce
  a result set.
  
  Available only with mysqlnd.
  
  This function cannot be used together with <strong>mysqli_stmt_store_result()</strong>. Both of these functions
  retrieve the full result set from the MySQL server.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>mysqli_result|false</info>  Returns <info>false</info> on failure. For successful queries which produce a result set,
                       such as <return>SELECT, SHOW, DESCRIBE</return> or <return>EXPLAIN</return>, <strong>mysqli_stmt_get_result()</strong> will
                       return a <class>mysqli_result</class> object. For other successful queries,
                       <strong>mysqli_stmt_get_result()</strong> will return <info>false</info>. The <strong>mysqli_stmt_errno()</strong> function
                       can be used to distinguish between the two reasons for <info>false</info>; due to a bug,
                       prior to PHP 7.4.13, <strong>mysqli_errno()</strong> had to be used for this purpose.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_result_metadata()</strong>
   * <strong>mysqli_stmt_fetch()</strong>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_stmt_store_result()</strong>


id: mysqli_stmt::more_results
type: function
doc:
<comment>Description:</comment>
  Check if there are more query results from a multiple query
  
  Object-oriented style
  
  Procedural style:
  
  Checks if there are more query results from a multiple query.
  
  Available only with mysqlnd.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if more results exist, otherwise <info>false</info>.

<comment>See Also:</comment>
   * mysqli_stmt::next_result
   * mysqli::multi_query


id: mysqli_stmt::next_result
type: function
doc:
<comment>Description:</comment>
  Reads the next result from a multiple query
  
  Object-oriented style
  
  Procedural style:
  
  Reads the next result from a multiple query.
  
  Prior to PHP 8.1.0, available only with mysqlnd.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * mysqli_stmt::more_results
   * mysqli::multi_query


id: mysqli_stmt::num_rows
type: function
doc:
<comment>Description:</comment>
  Returns the number of rows fetched from the server
  
  Object-oriented style
  
  Procedural style
  
  Returns the number of rows buffered in the statement. This function will only work after
  <strong>mysqli_stmt_store_result()</strong> is called to buffer the entire result set in the statement handle.
  
  This function returns <return>0</return> unless all rows have been fetched from the server.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>int|string</info>  An <info>int</info> representing the number of buffered rows. Returns <return>0</return> in unbuffered mode unless
              all rows have been fetched from the server.
              
              If the number of rows is greater than <info>PHP_INT_MAX</info>,
              the number will be returned as a <info>string</info>.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_store_result()</strong>
   * <strong>mysqli_stmt_affected_rows()</strong>
   * <strong>mysqli_prepare()</strong>


id: mysqli_stmt::prepare
type: function
doc:
<comment>Description:</comment>
  Prepares an SQL statement for execution
  
  Object-oriented style
  
  Procedural style
  
  Prepares a statement for execution. The query must consist of a single SQL statement.
  
  The statement template can contain zero or more question mark (<return>?</return>) parameter markers⁠—also called
  placeholders. The parameter markers must be bound to application variables using
  <strong>mysqli_stmt_bind_param()</strong> before executing the statement.
  
  In the case where a statement is passed to <strong>mysqli_stmt_prepare()</strong> that is longer than
  <return>max_allowed_packet</return> of the server, the returned error codes are different depending on whether you
  are using MySQL Native Driver (<return>mysqlnd</return>) or MySQL Client Library (<return>libmysqlclient</return>). The behavior is
  as follows:
  
  <return>mysqlnd</return> on Linux returns an error code of 1153. The error message means got a packet bigger than
  <return>max_allowed_packet</return> bytes.
  
  <return>mysqlnd</return> on Windows returns an error code 2006. This error message means server has gone away.
  
  <return>libmysqlclient</return> on all platforms returns an error code 2006. This error message means server has
  gone away.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.
  <info>string</info>       <strong>$query</strong>      The query, as a string. It must consist of a single SQL statement.
                           
                           The SQL statement may contain zero or more parameter markers represented
                           by question mark (<return>?</return>) characters at the appropriate positions.
                           
                           The markers are legal only in certain places in SQL statements. For
                           example, they are permitted in the <return>VALUES()</return> list of an <return>INSERT</return> statement
                           (to specify column values for a row), or in a comparison with a column in
                           a <return>WHERE</return> clause to specify a comparison value. However, they are not
                           permitted for identifiers (such as table or column names).

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_init()</strong>
   * <strong>mysqli_stmt_execute()</strong>
   * <strong>mysqli_stmt_fetch()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>
   * <strong>mysqli_stmt_bind_result()</strong>
   * <strong>mysqli_stmt_get_result()</strong>
   * <strong>mysqli_stmt_close()</strong>


id: mysqli_stmt::reset
type: function
doc:
<comment>Description:</comment>
  Resets a prepared statement
  
  Object-oriented style
  
  Procedural style
  
  Resets a prepared statement on client and server to state after prepare.
  
  It resets the statement on the server, data sent using <strong>mysqli_stmt_send_long_data()</strong>,  unbuffered
  result sets and current errors. It does not clear bindings or stored result sets.  Stored result
  sets will be cleared when executing the prepared statement (or closing it).
  
  To prepare a statement with another query use function <strong>mysqli_stmt_prepare()</strong>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>


id: mysqli_stmt::result_metadata
type: function
doc:
<comment>Description:</comment>
  Returns result set metadata from a prepared statement
  
  Object-oriented style
  
  Procedural style
  
  If a statement passed to <strong>mysqli_prepare()</strong> is one that produces a result set,
  <strong>mysqli_stmt_result_metadata()</strong> returns the result object that can be used to process the meta
  information such as total number of fields and individual field information.
  
  This result set pointer can be passed as an argument to any of the field-based functions that
  process result set metadata, such as:
  <strong>mysqli_num_fields()</strong><strong>mysqli_fetch_field()</strong><strong>mysqli_fetch_field_direct()</strong><strong>mysqli_fetch_fields()</strong><strong>mysqli_field_count()</strong><strong>mysqli_field_seek()</strong><strong>mysqli_field_tell()</strong><strong>mysqli_free_result()</strong>
  
  <strong>mysqli_num_fields()</strong>
  
  <strong>mysqli_fetch_field()</strong>
  
  <strong>mysqli_fetch_field_direct()</strong>
  
  <strong>mysqli_fetch_fields()</strong>
  
  <strong>mysqli_field_count()</strong>
  
  <strong>mysqli_field_seek()</strong>
  
  <strong>mysqli_field_tell()</strong>
  
  <strong>mysqli_free_result()</strong>
  
  The result set structure should be freed when you are done with it, which you can do by passing it
  to <strong>mysqli_free_result()</strong>
  
  The result set returned by <strong>mysqli_stmt_result_metadata()</strong> contains only metadata. It does not
  contain any row results. The rows are obtained by using the statement handle with
  <strong>mysqli_stmt_fetch()</strong>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>mysqli_result|false</info>  Returns a result object or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_free_result()</strong>


id: mysqli_stmt::send_long_data
type: function
doc:
<comment>Description:</comment>
  Send data in blocks
  
  Object-oriented style
  
  Procedural style
  
  Allows to send parameter data to the server in pieces (or chunks), e.g. if the size of a blob
  exceeds the size of <return>max_allowed_packet</return>. This function can be called multiple times to send the
  parts of a character or binary data value for a column, which must be one of the TEXT or BLOB
  datatypes.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.
  <info>int</info>          <strong>$param_num</strong>  Indicates which parameter to associate the data with. Parameters are
                           numbered beginning with 0.
  <info>string</info>       <strong>$data</strong>       A string containing data to be sent.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>


id: mysqli_stmt::store_result
type: function
doc:
<comment>Description:</comment>
  Stores a result set in an internal buffer
  
  Object-oriented style
  
  Procedural style
  
  This function should be called for queries that successfully  produce a result set (e.g. <return>SELECT,
  SHOW, DESCRIBE, EXPLAIN</return>) only if the complete result set needs to be buffered in PHP. Each
  subsequent <strong>mysqli_stmt_fetch()</strong> call will return buffered data.
  
  It is unnecessary to call <strong>mysqli_stmt_store_result()</strong> for other queries, but if you do, it will not
  harm or cause any notable performance loss in all cases. You can detect whether the query produced
  a result set by checking if <strong>mysqli_stmt_result_metadata()</strong> returns <info>false</info>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_result_metadata()</strong>
   * <strong>mysqli_stmt_fetch()</strong>


id: mysqli_stmt_affected_rows
type: function
doc:
<comment>Description:</comment>
  Returns the total number of rows changed, deleted, inserted, or
    matched by the last statement executed
    
  
  Object-oriented style
  
  Procedural style
  
  Returns the number of rows affected by <return>INSERT</return>, <return>UPDATE</return>, or <return>DELETE</return> query.  Works like
  <strong>mysqli_stmt_num_rows()</strong> for <return>SELECT</return> statements.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>int|string</info>  An integer greater than zero indicates the number of rows affected or retrieved. Zero
              indicates that no records were updated for an  <return>UPDATE</return> statement, no rows matched the
              <return>WHERE</return> clause in the query or that no query has yet been executed. <return>-1</return> indicates that
              the query returned an error or that, for a <return>SELECT</return> query, <strong>mysqli_stmt_affected_rows()</strong>
              was called prior to calling <strong>mysqli_stmt_store_result()</strong>.
              
              If the number of affected rows is greater than maximum PHP int value, the number of
              affected rows will be returned as a string value.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_num_rows()</strong>
   * <strong>mysqli_stmt_store_result()</strong>


id: mysqli_stmt_errno
type: function
doc:
<comment>Description:</comment>
  Returns the error code for the most recent statement call
  
  Object-oriented style
  
  Procedural style
  
  Returns the error code for the most recently invoked statement function that can succeed or fail.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>int</info>  An error code value. Zero means no error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_error()</strong>
   * <strong>mysqli_stmt_sqlstate()</strong>


id: mysqli_stmt_error
type: function
doc:
<comment>Description:</comment>
  Returns a string description for last statement error
  
  Object-oriented style
  
  Procedural style
  
  Returns a string containing the error message for the most recently invoked statement function
  that can succeed or fail.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>string</info>  A string that describes the error. An empty string if no error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_errno()</strong>
   * <strong>mysqli_stmt_sqlstate()</strong>


id: mysqli_stmt_error_list
type: function
doc:
<comment>Description:</comment>
  Returns a list of errors from the last statement executed
  
  Object-oriented style
  
  Procedural style
  
  Returns an array of errors for the most recently invoked statement function that can succeed or
  fail.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>array</info>  A list of errors, each as an associative <info>array</info> containing the errno, error, and sqlstate.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_error()</strong>
   * <strong>mysqli_stmt_errno()</strong>
   * <strong>mysqli_stmt_sqlstate()</strong>


id: mysqli_stmt_field_count
type: function
doc:
<comment>Description:</comment>
  Returns the number of columns in the given statement
  
  Object-oriented style
  
  Procedural style
  
  Returns the number of columns in the prepared statement.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns an integer representing the number of columns.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_num_rows()</strong>


id: mysqli_stmt_insert_id
type: function
doc:
<comment>Description:</comment>
  Get the ID generated from the previous INSERT operation
  
  Object-oriented style
  
  Procedural style
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>int|string</info>  


id: mysqli_stmt_param_count
type: function
doc:
<comment>Description:</comment>
  Returns the number of parameters for the given statement
  
  Object-oriented style
  
  Procedural style
  
  Returns the number of parameter markers present in the prepared statement.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns an integer representing the number of parameters.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>


id: mysqli_stmt_sqlstate
type: function
doc:
<comment>Description:</comment>
  Returns SQLSTATE error from previous statement operation
  
  Object-oriented style
  
  Procedural style
  
  Returns a string containing the SQLSTATE error code for the most recently invoked prepared
  statement function that can succeed or fail. The error code consists of five characters. <return>'00000'</return>
  means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see
  http://dev.mysql.com/doc/mysql/en/error-handling.html.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  Procedural style only: A <class>mysqli_stmt</class> object
                           returned by <strong>mysqli_stmt_init()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns a string containing the SQLSTATE error code for the last error. The error code
          consists of five characters. <return>'00000'</return> means no error.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_errno()</strong>
   * <strong>mysqli_stmt_error()</strong>


id: mysqli_thread_id
type: function
doc:
<comment>Description:</comment>
  Returns the thread ID for the current connection
  
  Object-oriented style
  
  Procedural style
  
  The <strong>mysqli_thread_id()</strong> function returns the thread ID for the current connection which can then be
  killed using the <strong>mysqli_kill()</strong> function. If the connection is lost and you reconnect with
  <strong>mysqli_ping()</strong>, the thread ID will be other. Therefore you should get the thread ID only when you
  need it.
  
  The thread ID is assigned on a connection-by-connection basis. Hence, if the connection is broken
  and then re-established a new thread ID will be assigned.
  
  To kill a running query you can use the SQL command  <return>KILL QUERY processid</return>.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>int</info>  Returns the Thread ID for the current connection.

<comment>See Also:</comment>
   * <strong>mysqli_kill()</strong>


id: mysqli_warning::next
type: function
doc:
<comment>Description:</comment>
  Fetch next warning
  
  Change warning information to the next warning if possible.
  
  Once the warning has been set to the next warning, new values of properties <return>message</return>, <return>sqlstate</return> and
  <return>errno</return> of <class>mysqli_warning</class> are available.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if next warning was fetched successfully. If there are no more warnings, it
        will return <info>false</info>


id: mysqli_warning_count
type: function
doc:
<comment>Description:</comment>
  Returns the number of warnings from the last query for the given link
  
  Object-oriented style
  
  Procedural style
  
  Returns the number of warnings from the last query in the connection.
  
  For retrieving warning messages you can use the SQL command <return>SHOW WARNINGS [limit row_count]</return>.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  Procedural style only: A <class>mysqli</class> object
                  returned by <strong>mysqli_connect()</strong> or <strong>mysqli_init()</strong>

<comment>Return:</comment>
  <info>int</info>  Number of warnings or zero if there are no warnings.

<comment>See Also:</comment>
   * <strong>mysqli_errno()</strong>
   * <strong>mysqli_error()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: natcasesort
type: function
doc:
<comment>Description:</comment>
  Sort an array using a case insensitive "natural order" algorithm
  
  <strong>natcasesort()</strong> is a case insensitive version of <strong>natsort()</strong>.
  
  This function implements a sort algorithm that orders alphanumeric strings in the way a human
  being would while maintaining key/value associations.  This is described as a "natural ordering".
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.
  
  Resets array's internal pointer to the first element.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The input array.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>natsort()</strong>
   * The comparison of array sorting functions
   * <strong>strnatcmp()</strong>
   * <strong>strnatcasecmp()</strong>


id: natsort
type: function
doc:
<comment>Description:</comment>
  Sort an array using a "natural order" algorithm
  
  This function implements a sort algorithm that orders alphanumeric strings in the way a human
  being would while maintaining key/value associations. This is described as a "natural ordering".
  An example of the difference between this algorithm and the regular computer string sorting
  algorithms (used in <strong>sort()</strong>) can be seen in the example below.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.
  
  Resets array's internal pointer to the first element.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The input array.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>natcasesort()</strong>
   * The comparison of array sorting functions
   * <strong>strnatcmp()</strong>
   * <strong>strnatcasecmp()</strong>


id: net_get_interfaces
type: function
doc:
<comment>Description:</comment>
  Get network interfaces
  
  Returns an enumeration of network interfaces (adapters) on the local machine.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative <info>array</info> where the key is the name of the interface and the value
               an associative array of interface attributes, or <info>false</info> on failure.
               
               Each interface associative array contains: Interface
               attributesNameDescriptiondescription Optional string value for description of the
               interface. Windows only. mac Optional string value for MAC address of the interface.
               Windows only. mtu Integer value for Maximum transmission unit (MTU) of the interface.
               Windows only. unicast Array of associative arrays, see Unicast attributes below. up
               Boolean status (on/off) for interface.
               
               Unicast attributesNameDescriptionflags Integer value. family Integer value. address
               String value for address in either IPv4 or IPv6. netmask String value for netmask in
               either IPv4 or IPv6.


id: next
type: function
doc:
<comment>Description:</comment>
  Advance the internal pointer of an array
  
  <strong>next()</strong> behaves like <strong>current()</strong>, with one difference.  It advances the internal array pointer one
  place forward before returning the element value.  That means it returns the next array value and
  advances the internal array pointer by one.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>  The <info>array</info> being affected.

<comment>Return:</comment>
  <info>mixed</info>  Returns the array value in the next place that's pointed to by the internal array pointer,
         or <info>false</info> if there are no more elements.
         
         This function may
         return Boolean <info>false</info>, but may also return a non-Boolean value which
         evaluates to <info>false</info>. Please read the section on Booleans for more
         information. Use the ===
         operator for testing the return value of this
         function.

<comment>See Also:</comment>
   * <strong>current()</strong>
   * <strong>end()</strong>
   * <strong>prev()</strong>
   * <strong>reset()</strong>
   * <strong>each()</strong>


id: ngettext
type: function
doc:
<comment>Description:</comment>
  Plural version of gettext
  
  The plural version of <strong>gettext()</strong>.  Some languages  have more than one form for plural messages
  dependent on the count.

<comment>Param:</comment>
  <info>string</info>  <strong>$singular</strong>  The singular message ID.
  <info>string</info>  <strong>$plural</strong>    The plural message ID.
  <info>int</info>     <strong>$count</strong>     The number (e.g. item count) to determine the translation for the respective
                     grammatical number.

<comment>Return:</comment>
  <info>string</info>  Returns correct plural form of message identified by  <strong>$singular</strong> and <strong>$plural</strong> for count
          <strong>$count</strong>.


id: nl2br
type: function
doc:
<comment>Description:</comment>
  Inserts HTML line breaks before all newlines in a string
  
  Returns <strong>$string</strong> with \<br /&gt; or  \<br&gt; inserted before all newlines (<return>\r\n</return>, <return>\n\r</return>, <return>\n</return> and <return>\r</return>).

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>     The input string.
  <info>bool</info>    <strong>$use_xhtml</strong>  Whether to use XHTML compatible line breaks or not.

<comment>Return:</comment>
  <info>string</info>  Returns the altered string.

<comment>See Also:</comment>
   * <strong>htmlspecialchars()</strong>
   * <strong>htmlentities()</strong>
   * <strong>wordwrap()</strong>
   * <strong>str_replace()</strong>


id: nl_langinfo
type: function
doc:
<comment>Description:</comment>
  Query language and locale information
  
  <strong>nl_langinfo()</strong> is used to access individual elements of the locale categories.  Unlike
  <strong>localeconv()</strong>, which returns all of the elements, <strong>nl_langinfo()</strong> allows you to select any specific
  element.

<comment>Param:</comment>
  <info>int</info>  <strong>$item</strong>  <strong>$item</strong> may be an integer value of the element or the constant name of the element. The
              following is a list of constant names for <strong>$item</strong> that may be used and their
              description. Some of these constants may not be defined or hold no value for certain
              locales. nl_langinfo ConstantsConstantDescriptionLC_TIME Category
              Constants<info>ABDAY_(1-7)</info>Abbreviated name of n-th day of the week.<info>DAY_(1-7)</info>Name of the n-th
              day of the week (DAY_1 = Sunday).<info>ABMON_(1-12)</info>Abbreviated name of the n-th month of the
              year.<info>MON_(1-12)</info>Name of the n-th month of the year.<info>AM_STR</info>String for Ante
              meridian.<info>PM_STR</info>String for Post meridian.<info>D_T_FMT</info>String that can be used as the format
              string for <strong>strftime()</strong> to represent time and date.<info>D_FMT</info>String that can be used as the
              format string for <strong>strftime()</strong> to represent date.<info>T_FMT</info>String that can be used as the
              format string for <strong>strftime()</strong> to represent time.<info>T_FMT_AMPM</info>String that can be used as
              the format string for <strong>strftime()</strong> to represent time in 12-hour format with ante/post
              meridian.<info>ERA</info>Alternate era.<info>ERA_YEAR</info>Year in alternate era format.<info>ERA_D_T_FMT</info>Date and
              time in alternate era format (string can be used in <strong>strftime()</strong>).<info>ERA_D_FMT</info>Date in
              alternate era format (string can be used in <strong>strftime()</strong>).<info>ERA_T_FMT</info>Time in alternate era
              format (string can be used in <strong>strftime()</strong>).LC_MONETARY Category
              Constants<info>INT_CURR_SYMBOL</info>International currency symbol.<info>CURRENCY_SYMBOL</info>Local currency
              symbol.<info>CRNCYSTR</info>Same value as <info>CURRENCY_SYMBOL</info>.<info>MON_DECIMAL_POINT</info>Decimal point
              character.<info>MON_THOUSANDS_SEP</info>Thousands separator (groups of three
              digits).<info>MON_GROUPING</info>Like <return>"grouping"</return> element.<info>POSITIVE_SIGN</info>Sign for positive
              values.<info>NEGATIVE_SIGN</info>Sign for negative values.<info>INT_FRAC_DIGITS</info>International fractional
              digits.<info>FRAC_DIGITS</info>Local fractional digits.<info>P_CS_PRECEDES</info>Returns 1 if <info>CURRENCY_SYMBOL</info>
              precedes a positive value.<info>P_SEP_BY_SPACE</info>Returns 1 if a space separates <info>CURRENCY_SYMBOL</info>
              from a positive value.<info>N_CS_PRECEDES</info>Returns 1 if <info>CURRENCY_SYMBOL</info> precedes a negative
              value.<info>N_SEP_BY_SPACE</info>Returns 1 if a space separates <info>CURRENCY_SYMBOL</info> from a negative
              value.<info>P_SIGN_POSN</info> Returns 0 if parentheses surround the quantity and <info>CURRENCY_SYMBOL</info>.
              Returns 1 if the sign string precedes the quantity and <info>CURRENCY_SYMBOL</info>.  Returns 2 if
              the sign string follows the quantity and <info>CURRENCY_SYMBOL</info>.  Returns 3 if the sign
              string immediately precedes the <info>CURRENCY_SYMBOL</info>.  Returns 4 if the sign string
              immediately follows the <info>CURRENCY_SYMBOL</info>. <info>N_SIGN_POSN</info>LC_NUMERIC Category
              Constants<info>DECIMAL_POINT</info>Decimal point character.<info>RADIXCHAR</info>Same value as
              <info>DECIMAL_POINT</info>.<info>THOUSANDS_SEP</info>Separator character for thousands (groups of three
              digits).<info>THOUSEP</info>Same value as <info>THOUSANDS_SEP</info>.<info>GROUPING</info>LC_MESSAGES Category
              Constants<info>YESEXPR</info>Regex string for matching <return>"yes"</return> input.<info>NOEXPR</info>Regex string for matching
              <return>"no"</return> input.<info>YESSTR</info>Output string for <return>"yes"</return>.<info>NOSTR</info>Output string for <return>"no"</return>.LC_CTYPE Category
              Constants<info>CODESET</info>Return a string with the name of the character encoding.
              
              Returns 0 if parentheses surround the quantity and <info>CURRENCY_SYMBOL</info>.
              
              Returns 1 if the sign string precedes the quantity and <info>CURRENCY_SYMBOL</info>.
              
              Returns 2 if the sign string follows the quantity and <info>CURRENCY_SYMBOL</info>.
              
              Returns 3 if the sign string immediately precedes the <info>CURRENCY_SYMBOL</info>.
              
              Returns 4 if the sign string immediately follows the <info>CURRENCY_SYMBOL</info>.

<comment>Return:</comment>
  <info>string|false</info>  Returns the element as a string, or <info>false</info> if <strong>$item</strong> is not valid.

<comment>See Also:</comment>
   * <strong>setlocale()</strong>
   * <strong>localeconv()</strong>


id: number_format
type: function
doc:
<comment>Description:</comment>
  Format a number with grouped thousands
  
  Formats a number with grouped thousands and optionally decimal digits using the rounding half up
  rule.

<comment>Param:</comment>
  <info>float</info>        <strong>$num</strong>                  The number being formatted.
  <info>int</info>          <strong>$decimals</strong>             Sets the number of decimal digits. If <return>0</return>, the <strong>$decimal_separator</strong>
                                     is omitted from the return value.
  <info>string|null</info>  <strong>$decimal_separator</strong>    Sets the separator for the decimal point.
  <info>string|null</info>  <strong>$thousands_separator</strong>  Sets the thousands separator.

<comment>Return:</comment>
  <info>string</info>  A formatted version of <strong>$num</strong>.

<comment>See Also:</comment>
   * <strong>money_format()</strong>
   * <strong>sprintf()</strong>
   * <strong>printf()</strong>
   * <strong>sscanf()</strong>


id: oauth_get_sbs
type: function
doc:
<comment>Description:</comment>
  Generate a Signature Base String
  
  Generates a Signature Base String according to pecl/oauth.

<comment>Param:</comment>
  <info>string</info>  <strong>$http_method</strong>         The HTTP method.
  <info>string</info>  <strong>$uri</strong>                 URI to encode.
  <info>array</info>   <strong>$request_parameters</strong>  Array of request parameters.

<comment>Return:</comment>
  <info>string</info>  Returns a Signature Base String.


id: oauth_urlencode
type: function
doc:
<comment>Description:</comment>
  Encode a URI to RFC 3986
  
  Encodes a URI to RFC 3986.

<comment>Param:</comment>
  <info>string</info>  <strong>$uri</strong>  URI to encode.

<comment>Return:</comment>
  <info>string</info>  Returns an RFC 3986 encoded string.


id: ob_clean
type: function
doc:
<comment>Description:</comment>
  Clean (erase) the output buffer
  
  This function discards the contents of the output buffer.
  
  This function does not destroy the output buffer like <strong>ob_end_clean()</strong> does.
  
  The output buffer must be started by <strong>ob_start()</strong> with PHP_OUTPUT_HANDLER_CLEANABLE flag. Otherwise
  <strong>ob_clean()</strong> will not work.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ob_flush()</strong>
   * <strong>ob_end_flush()</strong>
   * <strong>ob_end_clean()</strong>


id: ob_end_clean
type: function
doc:
<comment>Description:</comment>
  Clean (erase) the output buffer and turn off output buffering
  
  This function discards the contents of the topmost output buffer and turns off this output
  buffering. If you want to further process the buffer's contents you have to call <strong>ob_get_contents()</strong>
  before <strong>ob_end_clean()</strong> as the buffer contents are discarded when <strong>ob_end_clean()</strong> is called.
  
  The output buffer must be started by <strong>ob_start()</strong> with PHP_OUTPUT_HANDLER_CLEANABLE and
  PHP_OUTPUT_HANDLER_REMOVABLE flags. Otherwise <strong>ob_end_clean()</strong> will not work.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure. Reasons for failure are first that you called
        the function without an active buffer or that for some reason a buffer could not be deleted
        (possible for special buffer).

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_get_contents()</strong>
   * <strong>ob_flush()</strong>


id: ob_end_flush
type: function
doc:
<comment>Description:</comment>
  Flush (send) the output buffer and turn off output buffering
  
  This function will send the contents of the topmost output buffer (if any) and turn this output
  buffer off.  If you want to further process the buffer's contents you have to call
  <strong>ob_get_contents()</strong> before <strong>ob_end_flush()</strong> as the buffer contents are discarded after <strong>ob_end_flush()</strong>
  is called.
  
  The output buffer must be started by <strong>ob_start()</strong> with PHP_OUTPUT_HANDLER_FLUSHABLE and
  PHP_OUTPUT_HANDLER_REMOVABLE flags. Otherwise <strong>ob_end_flush()</strong> will not work.
  
  This function is similar to <strong>ob_get_flush()</strong>, except that <strong>ob_get_flush()</strong> returns the buffer as a
  string.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure. Reasons for failure are first that you called
        the function without an active buffer or that for some reason a buffer could not be deleted
        (possible for special buffer).

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_get_contents()</strong>
   * <strong>ob_get_flush()</strong>
   * <strong>ob_flush()</strong>
   * <strong>ob_end_clean()</strong>


id: ob_flush
type: function
doc:
<comment>Description:</comment>
  Flush (send) the output buffer
  
  This function will send the contents of the output buffer (if any). If you want to further process
  the buffer's contents you have to call <strong>ob_get_contents()</strong> before <strong>ob_flush()</strong> as the buffer contents
  are discarded after <strong>ob_flush()</strong> is called.
  
  This function does not destroy the output buffer like <strong>ob_end_flush()</strong> does.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ob_get_contents()</strong>
   * <strong>ob_clean()</strong>
   * <strong>ob_end_flush()</strong>
   * <strong>ob_end_clean()</strong>


id: ob_get_clean
type: function
doc:
<comment>Description:</comment>
  Get current buffer contents and delete current output buffer
  
  Gets the current buffer contents and delete current output buffer.
  
  <strong>ob_get_clean()</strong> essentially executes both <strong>ob_get_contents()</strong> and <strong>ob_end_clean()</strong>.
  
  The output buffer must be started by <strong>ob_start()</strong> with PHP_OUTPUT_HANDLER_CLEANABLE and
  PHP_OUTPUT_HANDLER_REMOVABLE flags. Otherwise <strong>ob_get_clean()</strong> will not work.

<comment>Return:</comment>
  <info>string|false</info>  Returns the contents of the output buffer and end output buffering. If output
                buffering isn't active then <info>false</info> is returned.

<comment>See Also:</comment>
   * <strong>ob_get_contents()</strong>
   * <strong>ob_start()</strong>


id: ob_get_contents
type: function
doc:
<comment>Description:</comment>
  Return the contents of the output buffer
  
  Gets the contents of the output buffer without clearing it.

<comment>Return:</comment>
  <info>string|false</info>  This will return the contents of the output buffer or <info>false</info>, if output buffering
                isn't active.

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_get_length()</strong>


id: ob_get_flush
type: function
doc:
<comment>Description:</comment>
  Flush the output buffer, return it as a string and turn off output buffering
  
  <strong>ob_get_flush()</strong> flushes the output buffer, return it as a string and turns off output buffering.
  
  The output buffer must be started by <strong>ob_start()</strong> with PHP_OUTPUT_HANDLER_FLUSHABLE flag. Otherwise
  <strong>ob_get_flush()</strong> will not work.
  
  This function is similar to <strong>ob_end_flush()</strong>, except that this function also returns the buffer as a
  string.

<comment>Return:</comment>
  <info>string|false</info>  Returns the output buffer or <info>false</info> if no buffering is active.

<comment>See Also:</comment>
   * <strong>ob_end_clean()</strong>
   * <strong>ob_end_flush()</strong>
   * <strong>ob_list_handlers()</strong>


id: ob_get_length
type: function
doc:
<comment>Description:</comment>
  Return the length of the output buffer
  
  This will return the length of the contents in the output buffer, in bytes.

<comment>Return:</comment>
  <info>int|false</info>  Returns the length of the output buffer contents, in bytes, or <info>false</info> if no buffering is
             active.

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_get_contents()</strong>


id: ob_get_level
type: function
doc:
<comment>Description:</comment>
  Return the nesting level of the output buffering mechanism
  
  Returns the nesting level of the output buffering mechanism.

<comment>Return:</comment>
  <info>int</info>  Returns the level of nested output buffering handlers or zero if output buffering is not
       active.

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_get_contents()</strong>


id: ob_get_status
type: function
doc:
<comment>Description:</comment>
  Get status of output buffers
  
  <strong>ob_get_status()</strong> returns status information on either the top level output buffer or all active
  output buffer levels if <strong>$full_status</strong> is set to <info>true</info>.

<comment>Param:</comment>
  <info>bool</info>  <strong>$full_status</strong>  <info>true</info> to return all active output buffer levels. If <info>false</info> or not set, only the
                      top level output buffer is returned.

<comment>Return:</comment>
  <info>array</info>  If called without the <strong>$full_status</strong> parameter or with <strong>$full_status</strong> = <info>false</info> a simple array
         with the following elements is returned:  2 [type] => 0 [status] => 0 [name] =>
         URL-Rewriter [del] => 1
         )
         ]]> Simple <strong>ob_get_status()</strong> resultsKeyValuelevelOutput nesting leveltype<return>0</return> (internal handler)
         or <return>1</return> (user supplied handler)statusOne of <return>PHP_OUTPUT_HANDLER_START</return> (0),
         <return>PHP_OUTPUT_HANDLER_CONT</return> (1) or <return>PHP_OUTPUT_HANDLER_END</return> (2)nameName of active output handler
         or ' default output handler' if none is setdelErase-flag as set by <strong>ob_start()</strong>
         
         If called with <strong>$full_status</strong> = <info>true</info> an array with one element for each active output buffer
         level is returned. The output level is used as key of the top level array and each array
         element itself is another array holding status information on one active output level.
         Array ( [chunk_size] => 0 [size] => 40960 [block_size] => 10240 [type] => 1 [status] => 0
         [name] => default output handler [del] => 1 )
          [1] => Array ( [chunk_size] => 0 [size] => 40960 [block_size] => 10240 [type] => 0
         [buffer_size] => 0 [status] => 0 [name] => URL-Rewriter [del] => 1 )
         
         )
         ]]>
         
         The full output contains these additional elements: Full <strong>ob_get_status()</strong>
         resultsKeyValuechunk_sizeChunk size as set by <strong>ob_start()</strong>size...blocksize...

<comment>See Also:</comment>
   * <strong>ob_get_level()</strong>
   * <strong>ob_list_handlers()</strong>


id: ob_gzhandler
type: function
doc:
<comment>Description:</comment>
  ob_start callback function to gzip output buffer
  
  <strong>ob_gzhandler()</strong> is intended to be used as a callback function for <strong>ob_start()</strong> to help facilitate
  sending gz-encoded data to web browsers that support compressed web pages.   Before <strong>ob_gzhandler()</strong>
  actually sends compressed data, it determines what type of content encoding the browser will
  accept ("gzip", "deflate" or none at all) and will return its output accordingly. All browsers are
  supported since it's up to the browser to send the correct header saying that it accepts
  compressed web pages. If a browser doesn't support compressed pages this function returns <info>false</info>.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>   
  <info>int</info>     <strong>$flags</strong>  

<comment>Return:</comment>
  <info>string|false</info>  

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_end_flush()</strong>


id: ob_iconv_handler
type: function
doc:
<comment>Description:</comment>
  Convert character encoding as output buffer handler
  
  Converts the string encoded in <strong>$internal_encoding</strong> to <strong>$output_encoding</strong>.
  
  <strong>$internal_encoding</strong> and  <strong>$output_encoding</strong> should be defined in the php.ini file or in
  <strong>iconv_set_encoding()</strong>.

<comment>Return:</comment>
  <info>string</info>  See <strong>ob_start()</strong> for information about this handler return values.

<comment>See Also:</comment>
   * <strong>iconv_get_encoding()</strong>
   * <strong>iconv_set_encoding()</strong>
   * output-control functions


id: ob_implicit_flush
type: function
doc:
<comment>Description:</comment>
  Turn implicit flush on/off
  
  <strong>ob_implicit_flush()</strong> will turn implicit flushing on or off. Implicit flushing will result in a
  flush operation after every output call, so that explicit calls to <strong>flush()</strong> will no longer be
  needed.

<comment>Param:</comment>
  <info>bool</info>  <strong>$enable</strong>  <info>true</info> to turn implicit flushing on, <info>false</info> otherwise.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>flush()</strong>
   * <strong>ob_start()</strong>
   * <strong>ob_end_flush()</strong>


id: ob_list_handlers
type: function
doc:
<comment>Description:</comment>
  List all output handlers in use
  
  Lists all output handlers in use.

<comment>Return:</comment>
  <info>array</info>  This will return an array with the output handlers in use (if any). If output_buffering is
         enabled or an anonymous function was used with <strong>ob_start()</strong>, <strong>ob_list_handlers()</strong> will return
         "default output handler".

<comment>See Also:</comment>
   * <strong>ob_end_clean()</strong>
   * <strong>ob_end_flush()</strong>
   * <strong>ob_get_flush()</strong>
   * <strong>ob_start()</strong>


id: ob_start
type: function
doc:
<comment>Description:</comment>
  Turn on output buffering
  
  This function will turn output buffering on. While output buffering is active no output is sent
  from the script (other than headers), instead the output is stored in an internal buffer.
  
  The contents of this internal buffer may be copied into a string variable using <strong>ob_get_contents()</strong>.
  To output what is stored in the internal buffer, use <strong>ob_end_flush()</strong>. Alternatively, <strong>ob_end_clean()</strong>
  will silently discard the buffer contents.
  
  Some web servers (e.g. Apache) change the working directory of a script when calling the callback
  function. You can change it back by e.g. <return>chdir(dirname($_SERVER['SCRIPT_FILENAME']))</return> in the
  callback function.
  
  Output buffers are stackable, that is, you may call <strong>ob_start()</strong> while another <strong>ob_start()</strong> is active.
  Just make sure that you call <strong>ob_end_flush()</strong> the appropriate number of times. If multiple output
  callback functions are active, output is being filtered sequentially through each of them in
  nesting order.
  
  If output buffering is still active when the script ends, PHP outputs the contents automatically.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>    An optional <strong>$callback</strong> function may be specified. This function takes a
                         string as a parameter and should return a string. The function will be
                         called when the output buffer is flushed (sent) or cleaned (with
                         <strong>ob_flush()</strong>, <strong>ob_clean()</strong> or similar function) or when the output buffer is
                         flushed to the browser at the end of the request.  When <strong>$callback</strong> is
                         called, it will receive the contents of the output buffer as its parameter
                         and is expected to return a new output buffer as a result, which will be
                         sent to the browser. If the <strong>$callback</strong> is not a callable function, this
                         function will return <info>false</info>. This is the callback signature:
                         
                         <info>string</info>handler<info>string</info><strong>$buffer</strong><info>int</info><strong>$phase</strong><strong>$buffer</strong> Contents of the output buffer.
                         <strong>$phase</strong> Bitmask of <info>PHP_OUTPUT_HANDLER_*</info> constants.
                         
                         Contents of the output buffer.
                         
                         Bitmask of <info>PHP_OUTPUT_HANDLER_*</info> constants.
                         
                         If <strong>$callback</strong> returns <info>false</info> original input is sent to the browser.
                         
                         The <strong>$callback</strong> parameter may be bypassed by passing a <info>null</info> value.
                         
                         <strong>ob_end_clean()</strong>, <strong>ob_end_flush()</strong>, <strong>ob_clean()</strong>, <strong>ob_flush()</strong> and <strong>ob_start()</strong> may
                         not be called from a callback function. If you call them from callback
                         function, the behavior is undefined. If you would like to delete the
                         contents of a buffer, return "" (a null string) from callback function. You
                         can't even call functions using the output buffering functions like
                         <return>print_r($expression, true)</return> or <return>highlight_file($filename, true)</return> from a
                         callback function.
                         
                         <strong>ob_gzhandler()</strong> function exists to facilitate sending gz-encoded data to web
                         browsers that support compressed web pages.  <strong>ob_gzhandler()</strong> determines what
                         type of content encoding the browser will accept and will return its output
                         accordingly.
  <info>string</info>    <strong>$buffer</strong>      Contents of the output buffer.
  <info>int</info>       <strong>$phase</strong>       Bitmask of <info>PHP_OUTPUT_HANDLER_*</info> constants.
  <info>int</info>       <strong>$chunk_size</strong>  If the optional parameter <strong>$chunk_size</strong> is passed, the buffer will be flushed
                         after any output call which causes the buffer's length to equal or exceed
                         <strong>$chunk_size</strong>. The default value <return>0</return> means that the output function will only
                         be called when the output buffer is closed.
  <info>int</info>       <strong>$flags</strong>       The <strong>$flags</strong> parameter is a bitmask that controls the operations that can be
                         performed on the output buffer. The default is to allow output buffers to
                         be cleaned, flushed and removed, which can be set explicitly via
                         <info>PHP_OUTPUT_HANDLER_CLEANABLE</info> | <info>PHP_OUTPUT_HANDLER_FLUSHABLE</info> |
                         <info>PHP_OUTPUT_HANDLER_REMOVABLE</info>, or <info>PHP_OUTPUT_HANDLER_STDFLAGS</info> as shorthand.
                         
                         Each flag controls access to a set of functions, as described below:
                         ConstantFunctions<info>PHP_OUTPUT_HANDLER_CLEANABLE</info><strong>ob_clean()</strong>, <strong>ob_end_clean()</strong>,
                         and <strong>ob_get_clean()</strong>. <info>PHP_OUTPUT_HANDLER_FLUSHABLE</info><strong>ob_end_flush()</strong>, <strong>ob_flush()</strong>,
                         and <strong>ob_get_flush()</strong>. <info>PHP_OUTPUT_HANDLER_REMOVABLE</info><strong>ob_end_clean()</strong>,
                         <strong>ob_end_flush()</strong>, and <strong>ob_get_flush()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ob_get_contents()</strong>
   * <strong>ob_end_clean()</strong>
   * <strong>ob_end_flush()</strong>
   * <strong>ob_implicit_flush()</strong>
   * <strong>ob_gzhandler()</strong>
   * <strong>ob_iconv_handler()</strong>
   * <strong>mb_output_handler()</strong>
   * <strong>ob_tidyhandler()</strong>


id: ob_tidyhandler
type: function
doc:
<comment>Description:</comment>
  ob_start callback function to repair the buffer
  
  Callback function for <strong>ob_start()</strong> to repair the buffer.

<comment>Param:</comment>
  <info>string</info>  <strong>$input</strong>  The buffer.
  <info>int</info>     <strong>$mode</strong>   The buffer mode.

<comment>Return:</comment>
  <info>string</info>  Returns the modified buffer.

<comment>See Also:</comment>
   * <strong>ob_start()</strong>


id: oci_bind_array_by_name
type: function
doc:
<comment>Description:</comment>
  Binds a PHP array to an Oracle PL/SQL array parameter
  
  Binds the PHP array <strong>$var</strong> to the Oracle placeholder <strong>$param</strong>, which points to an Oracle PL/SQL array.
  Whether it will be used for input or output will be determined at run-time.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>         A valid OCI statement identifier.
  <info>string</info>    <strong>$param</strong>             The Oracle placeholder.
  <info>array</info>     <strong>$var</strong>               An array.
  <info>int</info>       <strong>$max_array_length</strong>  Sets the maximum length both for incoming and result arrays.
  <info>int</info>       <strong>$max_item_length</strong>   Sets maximum length for array items. If not specified or equals to
                               -1, <strong>oci_bind_array_by_name()</strong> will find the longest element in the
                               incoming array and will use it as the maximum length.
  <info>int</info>       <strong>$type</strong>              Should be used to set the type of PL/SQL array items. See list of
                               available types below:
                               
                               <info>SQLT_NUM</info> - for arrays of NUMBER. <info>SQLT_INT</info> - for arrays of INTEGER
                               (Note: INTEGER it is actually a synonym for NUMBER(38), but <info>SQLT_NUM</info>
                               type won't work in this case even though they are synonyms). <info>SQLT_FLT</info>
                               - for arrays of FLOAT. <info>SQLT_AFC</info> - for arrays of CHAR. <info>SQLT_CHR</info> - for
                               arrays of VARCHAR2. <info>SQLT_VCS</info> - for arrays of VARCHAR. <info>SQLT_AVC</info> - for
                               arrays of CHARZ. <info>SQLT_STR</info> - for arrays of STRING. <info>SQLT_LVC</info> - for
                               arrays of LONG VARCHAR. <info>SQLT_ODT</info> - for arrays of DATE.
                               
                               <info>SQLT_NUM</info> - for arrays of NUMBER.
                               
                               <info>SQLT_INT</info> - for arrays of INTEGER (Note: INTEGER it is actually a
                               synonym for NUMBER(38), but <info>SQLT_NUM</info> type won't work in this case
                               even though they are synonyms).
                               
                               <info>SQLT_FLT</info> - for arrays of FLOAT.
                               
                               <info>SQLT_AFC</info> - for arrays of CHAR.
                               
                               <info>SQLT_CHR</info> - for arrays of VARCHAR2.
                               
                               <info>SQLT_VCS</info> - for arrays of VARCHAR.
                               
                               <info>SQLT_AVC</info> - for arrays of CHARZ.
                               
                               <info>SQLT_STR</info> - for arrays of STRING.
                               
                               <info>SQLT_LVC</info> - for arrays of LONG VARCHAR.
                               
                               <info>SQLT_ODT</info> - for arrays of DATE.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: oci_bind_by_name
type: function
doc:
<comment>Description:</comment>
  Binds a PHP variable to an Oracle placeholder
  
  Binds a PHP variable <strong>$var</strong> to the Oracle bind variable placeholder <strong>$param</strong>.  Binding is important
  for Oracle database performance and also as a way to avoid SQL Injection security issues.
  
  Binding allows the database to reuse the statement context and caches from previous executions of
  the statement, even if another user or process originally executed it.  Binding reduces SQL
  Injection concerns because the data associated with a bind variable is never treated as part of
  the SQL statement.  It does not need quoting or escaping.
  
  PHP variables that have been bound can be changed and the statement re-executed without needing to
  re-parse the statement or re-bind.
  
  In Oracle, bind variables are commonly divided into <return>IN</return> binds for values that are passed into the
  database, and <return>OUT</return> binds for values that are returned to PHP.  A bind variable may be both <return>IN</return> and
  <return>OUT</return>.  Whether a bind variable will be used for input or output is determined at run-time.
  
  You must specify <strong>$max_length</strong> when using an <return>OUT</return> bind so that PHP allocates enough memory to hold
  the returned value.
  
  For <return>IN</return> binds it is recommended to set the <strong>$max_length</strong> length if the statement is re-executed
  multiple times with different values for the PHP variable.  Otherwise Oracle may truncate data to
  the length of the initial PHP variable value.  If you don't know what the maximum length will be,
  then re-call <strong>oci_bind_by_name()</strong> with the current data size prior to each <strong>oci_execute()</strong> call.
  Binding an unnecessarily large length will have an impact on process memory in the database.
  
  A bind call tells Oracle which memory address to read data from. For <return>IN</return> binds that address needs
  to contain valid data when <strong>oci_execute()</strong> is called.  This means that the variable bound must
  remain in scope until execution.  If it doesn't, unexpected results or errors such as "ORA-01460:
  unimplemented or unreasonable conversion requested" may occur.  For <return>OUT</return> binds one symptom is no
  value being set in the PHP variable.
  
  For a statement that is repeatedly executed, binding values that never change may reduce the
  ability of the Oracle optimizer to choose the best statement execution plan.  Long running
  statements that are rarely re-executed may not benefit from binding.  However in both cases,
  binding might be safer than joining strings into a SQL statement, as this can be a security risk
  if unfiltered user text is concatenated.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>   A valid OCI8 statement identifier.
  <info>string</info>    <strong>$param</strong>       The colon-prefixed bind variable placeholder used in the statement.  The
                         colon is optional in <strong>$param</strong>. Oracle does not use question marks for
                         placeholders.
  <info>mixed</info>     <strong>$var</strong>         The PHP variable to be associated with <strong>$param</strong>
  <info>int</info>       <strong>$max_length</strong>  Sets the maximum length for the data. If you set it to -1, this function
                         will use the current length of <strong>$var</strong> to set the maximum length. In this case
                         the <strong>$var</strong> must exist and contain data when <strong>oci_bind_by_name()</strong> is called.
  <info>int</info>       <strong>$type</strong>        The datatype that Oracle will treat the data as.  The default <strong>$type</strong> used is
                         <info>SQLT_CHR</info>. Oracle will convert the data between this type and the database
                         column (or PL/SQL variable type), when possible.
                         
                         If you need to bind an abstract datatype (LOB/ROWID/BFILE) you need to
                         allocate it first using the <strong>oci_new_descriptor()</strong> function. The <strong>$length</strong> is
                         not used for abstract datatypes and should be set to -1.
                         
                         Possible values for <strong>$type</strong> are: <info>SQLT_BFILEE</info> or <info>OCI_B_BFILE</info>  - for BFILEs;
                         <info>SQLT_CFILEE</info> or <info>OCI_B_CFILEE</info> - for CFILEs; <info>SQLT_CLOB</info> or <info>OCI_B_CLOB</info> - for
                         CLOBs; <info>SQLT_BLOB</info> or <info>OCI_B_BLOB</info> - for BLOBs; <info>SQLT_RDD</info> or <info>OCI_B_ROWID</info> - for
                         ROWIDs; <info>SQLT_NTY</info> or <info>OCI_B_NTY</info> - for named datatypes; <info>SQLT_INT</info> or <info>OCI_B_INT</info>
                         - for integers; <info>SQLT_CHR</info> - for VARCHARs; <info>SQLT_BIN</info> or <info>OCI_B_BIN</info> - for RAW
                         columns; <info>SQLT_LNG</info> - for LONG columns; <info>SQLT_LBI</info> - for LONG RAW columns;
                         <info>SQLT_RSET</info> - for cursors created with <strong>oci_new_cursor()</strong>; <info>SQLT_BOL</info> or
                         <info>OCI_B_BOL</info> - for PL/SQL BOOLEANs (Requires Oracle Database 12c)
                         
                         <info>SQLT_BFILEE</info> or <info>OCI_B_BFILE</info>  - for BFILEs;
                         
                         <info>SQLT_CFILEE</info> or <info>OCI_B_CFILEE</info> - for CFILEs;
                         
                         <info>SQLT_CLOB</info> or <info>OCI_B_CLOB</info> - for CLOBs;
                         
                         <info>SQLT_BLOB</info> or <info>OCI_B_BLOB</info> - for BLOBs;
                         
                         <info>SQLT_RDD</info> or <info>OCI_B_ROWID</info> - for ROWIDs;
                         
                         <info>SQLT_NTY</info> or <info>OCI_B_NTY</info> - for named datatypes;
                         
                         <info>SQLT_INT</info> or <info>OCI_B_INT</info> - for integers;
                         
                         <info>SQLT_CHR</info> - for VARCHARs;
                         
                         <info>SQLT_BIN</info> or <info>OCI_B_BIN</info> - for RAW columns;
                         
                         <info>SQLT_LNG</info> - for LONG columns;
                         
                         <info>SQLT_LBI</info> - for LONG RAW columns;
                         
                         <info>SQLT_RSET</info> - for cursors created with <strong>oci_new_cursor()</strong>;
                         
                         <info>SQLT_BOL</info> or <info>OCI_B_BOL</info> - for PL/SQL BOOLEANs (Requires Oracle Database 12c)

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>oci_bind_array_by_name()</strong>
   * <strong>oci_parse()</strong>


id: oci_cancel
type: function
doc:
<comment>Description:</comment>
  Cancels reading from cursor
  
  Invalidates a cursor, freeing all associated resources and cancels the ability to read from it.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  An OCI statement.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: oci_client_version
type: function
doc:
<comment>Description:</comment>
  Returns the Oracle client library version
  
  Returns a string containing the version number of the Oracle C client library that PHP is linked
  with.

<comment>Return:</comment>
  <info>string</info>  Returns the version number as a <info>string</info>.

<comment>See Also:</comment>
   * <strong>oci_server_version()</strong>


id: oci_close
type: function
doc:
<comment>Description:</comment>
  Closes an Oracle connection
  
  Unsets <strong>$connection</strong>.  The underlying database connection is closed if no other resources are using
  it and if it was created with <strong>oci_connect()</strong> or <strong>oci_new_connect()</strong>.
  
  It is recommended to close connections that are no longer needed because this makes database
  resources available for other users.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  An Oracle connection identifier returned by  <strong>oci_connect()</strong>, <strong>oci_pconnect()</strong>,
                         or <strong>oci_new_connect()</strong>.

<comment>Return:</comment>
  <info>bool|null</info>  Returns <info>null</info> when oci8.old_oci_close_semantics is enabled, or <info>true</info> otherwise.

<comment>See Also:</comment>
   * <strong>oci_connect()</strong>
   * <strong>oci_free_statement()</strong>


id: oci_commit
type: function
doc:
<comment>Description:</comment>
  Commits the outstanding database transaction
  
  Commits the outstanding transaction for the Oracle <strong>$connection</strong>.  A commit ends the current
  transaction and makes permanent all changes.  It releases all locks held.
  
  A transaction begins when the first SQL statement that changes data is executed with <strong>oci_execute()</strong>
  using the <info>OCI_NO_AUTO_COMMIT</info> flag.  Further data changes made by other statements become part of
  the same transaction.  Data changes made in a transaction are temporary until the transaction is
  committed or rolled back.  Other users of the database will not see the changes until they are
  committed.
  
  When inserting or updating data, using transactions is recommended for relational data consistency
  and for performance reasons.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  An Oracle connection identifier, returned by <strong>oci_connect()</strong>, <strong>oci_pconnect()</strong>,
                         or <strong>oci_new_connect()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>oci_execute()</strong>
   * <strong>oci_rollback()</strong>


id: oci_connect
type: function
doc:
<comment>Description:</comment>
  Connect to an Oracle database
  
  Returns a connection identifier needed for most other OCI8 operations.
  
  For performance, most applications should use persistent connections with <strong>oci_pconnect()</strong> instead
  of <strong>oci_connect()</strong>. See Connection Handling for general information on connection management and
  connection pooling.
  
  The second and subsequent calls to <strong>oci_connect()</strong> with the same parameters will return the
  connection handle returned from the first call. This means that transactions in one handle are
  also in the other handles, because they use the same underlying database connection. If two
  handles need to be transactionally isolated from each other, use <strong>oci_new_connect()</strong> instead.

<comment>Param:</comment>
  <info>string</info>       <strong>$username</strong>           The Oracle user name.
  <info>string</info>       <strong>$password</strong>           The password for <strong>$username</strong>.
  <info>string|null</info>  <strong>$connection_string</strong>  Contains
                                   the <return>Oracle instance</return> to connect to. It can be
                                   an Easy Connect
                                   string, or a Connect Name from
                                   the tnsnames.ora file, or the name of a local
                                   Oracle instance.
                                   
                                   If not specified or <info>null</info>, PHP uses
                                   environment variables such as <info>TWO_TASK</info> (on Linux)
                                   or <info>LOCAL</info> (on Windows)
                                   and <info>ORACLE_SID</info> to determine the
                                   <return>Oracle instance</return> to connect to.
                                   
                                   To use the Easy Connect naming method, PHP must be linked with
                                   Oracle
                                   10g or greater Client libraries. The Easy Connect string for
                                   Oracle
                                   10g is of the form:
                                   [//]host_name[:port][/service_name]. From Oracle
                                   11g, the syntax is:
                                   
                                   [//]host_name[:port][/service_name][:server_type][/instance_name].
                                   Further options were introduced with Oracle 19c, including
                                   timeout and keep-alive
                                   settings.  Refer to Oracle documentation.  Service names can be
                                   found by running
                                   the Oracle utility <return>lsnrctl status</return> on the database server
                                   machine.
                                   
                                   The tnsnames.ora file can be in the Oracle Net search path,
                                   which
                                   includes /your/path/to/instantclient/network/admin,
                                   $ORACLE_HOME/network/admin
                                   and /etc.  Alternatively set <return>TNS_ADMIN</return>
                                   so that $TNS_ADMIN/tnsnames.ora is read.  Make sure the web
                                   daemon has read access to the file.
  <info>string</info>       <strong>$encoding</strong>           Determines
                                   the character set used by the Oracle Client libraries.  The
                                   character
                                   set does not need to match the character set used by the
                                   database.  If
                                   it doesn't match, Oracle will do its best to convert data to and
                                   from
                                   the database character set.  Depending on the character sets this
                                   may
                                   not give usable results.  Conversion also adds some time
                                   overhead.
                                   
                                   If not specified, the
                                   Oracle Client libraries determine a character set from
                                   the <info>NLS_LANG</info> environment variable.
                                   
                                   Passing this parameter can
                                   reduce the time taken to connect.
  <info>int</info>          <strong>$session_mode</strong>       This
                                   parameter is available since version PHP 5 (PECL OCI8 1.1) and
                                   accepts the
                                   following values: <info>OCI_DEFAULT</info>,
                                   <info>OCI_SYSOPER</info> and <info>OCI_SYSDBA</info>.
                                   If either <info>OCI_SYSOPER</info> or
                                   <info>OCI_SYSDBA</info> were specified, this function will try
                                   to establish privileged connection using external credentials.
                                   Privileged connections are disabled by default. To enable them
                                   you
                                   need to set oci8.privileged_connect
                                   to <return>On</return>.
                                   
                                   PHP 5.3 (PECL OCI8 1.3.4) introduced the
                                   <info>OCI_CRED_EXT</info> mode value. This tells Oracle to use
                                   External or OS authentication, which must be configured in the
                                   database.  The <info>OCI_CRED_EXT</info> flag can only be used
                                   with username of "/" and a empty password.
                                   oci8.privileged_connect
                                   may be <return>On</return> or <return>Off</return>.
                                   
                                   <info>OCI_CRED_EXT</info> may be combined with the
                                   <info>OCI_SYSOPER</info> or
                                   <info>OCI_SYSDBA</info> modes.
                                   
                                   <info>OCI_CRED_EXT</info> is not supported on Windows for
                                   security reasons.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a connection identifier or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>oci_pconnect()</strong>
   * <strong>oci_new_connect()</strong>
   * <strong>oci_close()</strong>


