# php_manual

id: oci_define_by_name
type: function
doc:
<comment>Description:</comment>
  Associates a PHP variable with a column for query fetches
  
  Associates a PHP variable with a column for query fetches using <strong>oci_fetch()</strong>.
  
  The <strong>oci_define_by_name()</strong> call must occur before executing <strong>oci_execute()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI8 statement
                        identifier created by <strong>oci_parse()</strong> and executed
                        by <strong>oci_execute()</strong>, or a <return>REF
                        CURSOR</return> statement identifier.
  <info>string</info>    <strong>$column</strong>     The column name used in the query.
                        
                        Use uppercase for Oracle's default, non-case sensitive column names.  Use
                        the exact column name case for case-sensitive column names.
  <info>mixed</info>     <strong>$var</strong>        The PHP variable that will contain the returned column value.
  <info>int</info>       <strong>$type</strong>       The data type to be returned.  Generally not needed.  Note that Oracle-style
                        data conversions are not performed.  For example, <return>SQLT_INT</return> will be ignored
                        and the returned data type will still be <return>SQLT_CHR</return>.
                        
                        You can optionally use <strong>oci_new_descriptor()</strong> to allocate LOB/ROWID/BFILE
                        descriptors.

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

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_new_descriptor()</strong>


id: oci_error
type: function
doc:
<comment>Description:</comment>
  Returns the last error found
  
  Returns the last error found.
  
  The function should be called immediately after an error occurs. Errors are cleared by a
  successful statement.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$connection_or_statement</strong>  For most errors, <strong>$connection_or_statement</strong> is the resource
                                           handle that was passed to the failing function call. For
                                           connection errors with <strong>oci_connect()</strong>, <strong>oci_new_connect()</strong>
                                           or  <strong>oci_pconnect()</strong> <info>null</info> should be passed.

<comment>Return:</comment>
  <info>array|false</info>  If no error is found, <strong>oci_error()</strong> returns <info>false</info>. Otherwise, <strong>oci_error()</strong> returns the
               error information as an associative array.
               
               <strong>oci_error()</strong> Array DescriptionArray keyTypeDescription<return>code</return><info>int</info> The Oracle error number.
               <return>message</return><info>string</info> The Oracle error text. <return>offset</return><info>int</info> The byte position of an error in the
               SQL statement.  If there was no statement, this is <return>0</return> <return>sqltext</return><info>string</info> The SQL statement
               text.  If there was no statement, this is an empty string.


id: oci_execute
type: function
doc:
<comment>Description:</comment>
  Executes a statement
  
  Executes a <strong>$statement</strong> previously returned from <strong>oci_parse()</strong>.
  
  After execution, statements like <return>INSERT</return> will have data committed to the database by default.  For
  statements like <return>SELECT</return>, execution performs the logic of the query. Query results can subsequently
  be fetched in PHP with functions like <strong>oci_fetch_array()</strong>.
  
  Each parsed statement may be executed multiple times, saving the cost of re-parsing.  This is
  commonly used for <return>INSERT</return> statements when data is bound with <strong>oci_bind_by_name()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI statement identifier.
  <info>int</info>       <strong>$mode</strong>       An optional second parameter can be one of the following constants:
                        Execution ModesConstantDescription<info>OCI_COMMIT_ON_SUCCESS</info>Automatically commit
                        all outstanding changes for this connection when the statement has
                        succeeded. This is the default.<info>OCI_DESCRIBE_ONLY</info>Make query meta data
                        available to functions like <strong>oci_field_name()</strong> but do not create a result set.
                        Any subsequent fetch call such as <strong>oci_fetch_array()</strong> will
                        fail.<info>OCI_NO_AUTO_COMMIT</info>Do not automatically commit changes.
                        
                        Using <info>OCI_NO_AUTO_COMMIT</info> mode starts or continues a transaction.
                        Transactions are automatically rolled back when the connection is closed, or
                        when the script ends.  Explicitly call <strong>oci_commit()</strong> to commit a transaction,
                        or <strong>oci_rollback()</strong> to abort it.
                        
                        When inserting or updating data, using transactions is recommended for
                        relational data consistency and for performance reasons.
                        
                        If <info>OCI_NO_AUTO_COMMIT</info> mode is used for any statement including queries, and
                        <strong>oci_commit()</strong> or <strong>oci_rollback()</strong> is not subsequently called, then OCI8 will
                        perform a rollback at the end of the script even if no data was changed.  To
                        avoid an unnecessary rollback, many scripts do not use <info>OCI_NO_AUTO_COMMIT</info>
                        mode for queries or PL/SQL.  Be careful to ensure the appropriate
                        transactional consistency for the application when using <strong>oci_execute()</strong> with
                        different modes in the same script.

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

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


id: oci_fetch
type: function
doc:
<comment>Description:</comment>
  Fetches the next row from a query into internal buffers
  
  Fetches the next row from a query into internal buffers accessible either with <strong>oci_result()</strong>, or by
  using variables previously defined with <strong>oci_define_by_name()</strong>.
  
  See <strong>oci_fetch_array()</strong> for general information about fetching data.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI8 statement
                        identifier created by <strong>oci_parse()</strong> and executed
                        by <strong>oci_execute()</strong>, or a <return>REF
                        CURSOR</return> statement identifier.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> if there are no more rows in the <strong>$statement</strong>.

<comment>See Also:</comment>
   * <strong>oci_define_by_name()</strong>
   * <strong>oci_fetch_all()</strong>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_object()</strong>
   * <strong>oci_fetch_row()</strong>
   * <strong>oci_result()</strong>


id: oci_fetch_all
type: function
doc:
<comment>Description:</comment>
  Fetches multiple rows from a query into a two-dimensional array
  
  Fetches multiple rows from a query into a two-dimensional array. By default, all rows are
  returned.
  
  This function can be called only once for each query executed with <strong>oci_execute()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI8 statement
                        identifier created by <strong>oci_parse()</strong> and executed
                        by <strong>oci_execute()</strong>, or a <return>REF
                        CURSOR</return> statement identifier.
  <info>array</info>     <strong>$output</strong>     The variable to contain the returned rows.
                        
                        LOB columns are returned as strings, where Oracle supports conversion.
                        
                        See <strong>oci_fetch_array()</strong> for more information on how data and types are
                        fetched.
  <info>int</info>       <strong>$offset</strong>     The number of initial rows to discard when fetching the result. The default
                        value is 0, so the first row onwards is returned.
  <info>int</info>       <strong>$limit</strong>      The number of rows to return.  The default is -1 meaning return all the rows
                        from <strong>$offset</strong> + 1 onwards.
  <info>int</info>       <strong>$flags</strong>      Parameter <strong>$flags</strong> indicates the array structure and whether associative
                        arrays should be used. <strong>oci_fetch_all()</strong> Array Structure
                        ModesConstantDescription<info>OCI_FETCHSTATEMENT_BY_ROW</info>The outer array will
                        contain one sub-array per query row.<info>OCI_FETCHSTATEMENT_BY_COLUMN</info>The outer
                        array will contain one sub-array per query column. This is the default.
                        
                        Arrays can be indexed either by column heading or numerically. Only one
                        index mode will be returned. <strong>oci_fetch_all()</strong> Array Index
                        ModesConstantDescription<info>OCI_NUM</info>Numeric indexes are used for each column's
                        array.<info>OCI_ASSOC</info>Associative indexes are used for each column's array. This is
                        the default.
                        
                        Use the addition operator "+" to choose a combination of array structure and
                        index modes.
                        
                        Oracle's default, non-case sensitive column names will have uppercase array
                        keys.  Case-sensitive column names will have array keys using the exact
                        column case. Use <strong>var_dump()</strong> on <strong>$output</strong> to verify the appropriate case to use
                        for each query.
                        
                        Queries that have more than one column with the same name should use column
                        aliases.  Otherwise only one of the columns will appear in an associative
                        array.

<comment>Return:</comment>
  <info>int</info>  Returns the number of rows in <strong>$output</strong>, which may be 0 or more.

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_object()</strong>
   * <strong>oci_fetch_row()</strong>
   * <strong>oci_set_prefetch()</strong>


id: oci_fetch_array
type: function
doc:
<comment>Description:</comment>
  Returns the next row from a query as an associative or numeric array
    
  
  Returns an array containing the next result-set row of a query. Each array entry corresponds to a
  column of the row.  This function is typically called in a loop until it returns <info>false</info>, indicating
  no more rows exist.
  
  If <strong>$statement</strong> corresponds to a PL/SQL block returning Oracle Database Implicit Result Sets, then
  rows from all sets are consecutively fetched. If <strong>$statement</strong> is returned by
  <strong>oci_get_implicit_resultset()</strong>, then only the subset of rows for one child query are returned.
  
  For details on the data type mapping performed by
  the OCI8 extension, see the datatypes
  supported by the driver

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI8 statement
                        identifier created by <strong>oci_parse()</strong> and executed
                        by <strong>oci_execute()</strong>, or a <return>REF
                        CURSOR</return> statement identifier.
                        
                        Can also be a statement identifier returned by <strong>oci_get_implicit_resultset()</strong>.
  <info>int</info>       <strong>$mode</strong>       An optional second parameter can be any combination of the following
                        constants: <strong>oci_fetch_array()</strong> ModesConstantDescription<info>OCI_BOTH</info>Returns an
                        array with both associative and numeric indices. This is the same as
                        <info>OCI_ASSOC</info> + <info>OCI_NUM</info> and is the default behavior.<info>OCI_ASSOC</info>Returns an
                        associative array.<info>OCI_NUM</info>Returns a numeric array.<info>OCI_RETURN_NULLS</info>Creates
                        elements for <info>null</info> fields.  The element values will be a PHP <info>null</info>.
                        <info>OCI_RETURN_LOBS</info>Returns the contents of LOBs instead of the LOB descriptors.
                        
                        The default <strong>$mode</strong> is <info>OCI_BOTH</info>.
                        
                        Use the addition operator "+" to specify more than one mode at a time.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array with associative and/or numeric indices. If there are no more rows
               in the <strong>$statement</strong> then <info>false</info> is returned.
               
               By default, <return>LOB</return> columns are returned as LOB descriptors.
               
               <return>DATE</return> columns are returned as strings formatted to the current date format.  The
               default format can be changed with Oracle environment variables such as <return>NLS_LANG</return> or
               by a previously executed <return>ALTER SESSION SET NLS_DATE_FORMAT</return> command.
               
               Oracle's default, non-case sensitive column names will have uppercase associative
               indices in the result array.  Case-sensitive column names will have array indices
               using the exact column case. Use <strong>var_dump()</strong> on the result array to verify the
               appropriate case to use for each query.
               
               The table name is not included in the array index.  If your query contains two
               different columns with the same name, use <info>OCI_NUM</info> or add a column alias to the query
               to ensure name uniqueness, see example #7. Otherwise only one column will be returned
               via PHP.

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_fetch_all()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_object()</strong>
   * <strong>oci_fetch_row()</strong>
   * <strong>oci_set_prefetch()</strong>


id: oci_fetch_assoc
type: function
doc:
<comment>Description:</comment>
  Returns the next row from a query as an associative array
  
  Returns an associative array containing the next result-set row of a query. Each array entry
  corresponds to a column of the row.  This function is typically called in a loop until it returns
  <info>false</info>, indicating no more rows exist.
  
  Calling <strong>oci_fetch_assoc()</strong> is identical to calling <strong>oci_fetch_array()</strong> with <info>OCI_ASSOC</info> +
  <info>OCI_RETURN_NULLS</info>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI8 statement
                        identifier created by <strong>oci_parse()</strong> and executed
                        by <strong>oci_execute()</strong>, or a <return>REF
                        CURSOR</return> statement identifier.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array. If there are no more rows in the <strong>$statement</strong> then <info>false</info>
               is returned.

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_fetch_all()</strong>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_object()</strong>
   * <strong>oci_fetch_row()</strong>


id: oci_fetch_object
type: function
doc:
<comment>Description:</comment>
  Returns the next row from a query as an object
  
  Returns an object containing the next result-set row of a query. Each attribute of the object
  corresponds to a column of the row. This function is typically called in a loop until it returns
  <info>false</info>, indicating no more rows exist.
  
  For details on the data type mapping performed by
  the OCI8 extension, see the datatypes
  supported by the driver

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI8 statement
                        identifier created by <strong>oci_parse()</strong> and executed
                        by <strong>oci_execute()</strong>, or a <return>REF
                        CURSOR</return> statement identifier.

<comment>Return:</comment>
  <info>stdClass|false</info>  Returns an object.  Each attribute of the object corresponds to a column of the
                  row.  If there are no more rows in the <strong>$statement</strong> then <info>false</info> is returned.
                  
                  Any <return>LOB</return> columns are returned as LOB descriptors.
                  
                  <return>DATE</return> columns are returned as strings formatted to the current date format.  The
                  default format can be changed with Oracle environment variables such as <return>NLS_LANG</return>
                  or by a previously executed <return>ALTER SESSION SET NLS_DATE_FORMAT</return> command.
                  
                  Oracle's default, non-case sensitive column names will have uppercase attribute
                  names.  Case-sensitive column names will have attribute names using the exact
                  column case. Use <strong>var_dump()</strong> on the result object to verify the appropriate case
                  for attribute access.
                  
                  Attribute values will be <info>null</info> for any <return>NULL</return> data fields.

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_fetch_all()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_row()</strong>


id: oci_fetch_row
type: function
doc:
<comment>Description:</comment>
  Returns the next row from a query as a numeric array
  
  Returns a numerically indexed array containing the next result-set row of a query. Each array
  entry corresponds to a column of the row.  This function is typically called in a loop until it
  returns <info>false</info>, indicating no more rows exist.
  
  Calling <strong>oci_fetch_row()</strong> is identical to calling <strong>oci_fetch_array()</strong> with <info>OCI_NUM</info> + <info>OCI_RETURN_NULLS</info>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI8 statement
                        identifier created by <strong>oci_parse()</strong> and executed
                        by <strong>oci_execute()</strong>, or a <return>REF
                        CURSOR</return> statement identifier.

<comment>Return:</comment>
  <info>array|false</info>  Returns a numerically indexed array.  If there are no more rows in the <strong>$statement</strong>
               then <info>false</info> is returned.

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_fetch_all()</strong>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_object()</strong>


id: oci_field_is_null
type: function
doc:
<comment>Description:</comment>
  Checks if a field in the currently fetched row is null
  
  Checks if the given <strong>$column</strong> from the current row of <strong>$statement</strong> is <info>null</info>.

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  A valid OCI statement identifier.
  <info>string|int</info>  <strong>$column</strong>     Can be the field's index (1-based) or name.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$column</strong> is <info>null</info>, <info>false</info> otherwise.


id: oci_field_name
type: function
doc:
<comment>Description:</comment>
  Returns the name of a field from the statement
  
  Returns the name of the <strong>$column</strong>.

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  A valid OCI statement identifier.
  <info>string|int</info>  <strong>$column</strong>     Can be the field's index (1-based) or name.

<comment>Return:</comment>
  <info>string|false</info>  Returns the name as a string, or <info>false</info> on failure

<comment>See Also:</comment>
   * <strong>oci_num_fields()</strong>
   * <strong>oci_field_type()</strong>
   * <strong>oci_field_size()</strong>


id: oci_field_precision
type: function
doc:
<comment>Description:</comment>
  Tell the precision of a field
  
  Returns precision of the <strong>$column</strong>.
  
  For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is
  NUMBER. Else it's NUMBER(precision, scale).

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  A valid OCI statement identifier.
  <info>string|int</info>  <strong>$column</strong>     Can be the field's index (1-based) or name.

<comment>Return:</comment>
  <info>int|false</info>  Returns the precision as an integer, or <info>false</info> on failure

<comment>See Also:</comment>
   * <strong>oci_field_scale()</strong>
   * <strong>oci_field_type()</strong>


id: oci_field_scale
type: function
doc:
<comment>Description:</comment>
  Tell the scale of the field
  
  Returns the scale of the column with <strong>$column</strong> index.
  
  For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is
  NUMBER. Else it's NUMBER(precision, scale).

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  A valid OCI statement identifier.
  <info>string|int</info>  <strong>$column</strong>     Can be the field's index (1-based) or name.

<comment>Return:</comment>
  <info>int|false</info>  Returns the scale as an integer, or <info>false</info> on failure

<comment>See Also:</comment>
   * <strong>oci_field_precision()</strong>
   * <strong>oci_field_type()</strong>


id: oci_field_size
type: function
doc:
<comment>Description:</comment>
  Returns field's size
  
  Returns the size of a <strong>$column</strong>.

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  A valid OCI statement identifier.
  <info>string|int</info>  <strong>$column</strong>     Can be the field's index (1-based) or name.

<comment>Return:</comment>
  <info>int|false</info>  Returns the size of a <strong>$column</strong> in bytes, or <info>false</info> on failure

<comment>See Also:</comment>
   * <strong>oci_num_fields()</strong>
   * <strong>oci_field_name()</strong>


id: oci_field_type
type: function
doc:
<comment>Description:</comment>
  Returns a field's data type name
  
  Returns a field's data type name.

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  A valid OCI statement identifier.
  <info>string|int</info>  <strong>$column</strong>     Can be the field's index (1-based) or name.

<comment>Return:</comment>
  <info>string|int|false</info>  Returns the field data type as a <info>string</info> or an <info>int</info>, or <info>false</info> on failure

<comment>See Also:</comment>
   * <strong>oci_num_fields()</strong>
   * <strong>oci_field_name()</strong>
   * <strong>oci_field_size()</strong>


id: oci_field_type_raw
type: function
doc:
<comment>Description:</comment>
  Tell the raw Oracle data type of the field
  
  Returns Oracle's raw "SQLT" data type of the <strong>$column</strong>.
  
  If you want a field's type name, then use <strong>oci_field_type()</strong> instead.

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  A valid OCI statement identifier.
  <info>string|int</info>  <strong>$column</strong>     Can be the field's index (1-based) or name.

<comment>Return:</comment>
  <info>int|false</info>  Returns Oracle's raw data type as a number, or <info>false</info> on failure


id: oci_free_descriptor
type: function
doc:
<comment>Description:</comment>
  Frees a descriptor
  
  Frees a descriptor allocated by <strong>oci_new_descriptor()</strong>.

<comment>Param:</comment>
  <info></info>  <strong>$descriptor</strong>  Descriptor allocated by <strong>oci_new_descriptor()</strong>.

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

<comment>See Also:</comment>
   * OCILOB::free


id: oci_free_statement
type: function
doc:
<comment>Description:</comment>
  Frees all resources associated with statement or cursor
  
  Frees resources associated with Oracle's cursor or statement, which was received from as a result
  of <strong>oci_parse()</strong> or obtained from Oracle.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI statement identifier.

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


id: oci_get_implicit_resultset
type: function
doc:
<comment>Description:</comment>
  Returns the next child statement resource from a parent statement resource that has Oracle
  Database
  Implicit Result Sets
    
  
  Used to fetch consectutive sets of query results after the execution of a stored or anonymous
  Oracle PL/SQL block where that block returns query results with the Oracle Database 12 (or later)
  DBMS_SQL.RETURN_RESULT PL/SQL function.  This allows PL/SQL blocks to easily return query results.
  
  The child statement can be used with any of the OCI8 fetching functions: <strong>oci_fetch()</strong>,
  <strong>oci_fetch_all()</strong>, <strong>oci_fetch_array()</strong>, <strong>oci_fetch_object()</strong>, <strong>oci_fetch_assoc()</strong> or <strong>oci_fetch_row()</strong>
  
  Child statements inherit their parent statement's prefetch value, or it can be explicitly set with
  <strong>oci_set_prefetch()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI8 statement identifier created by <strong>oci_parse()</strong> and executed by
                        <strong>oci_execute()</strong>.  The statement identifier may or may not be associated with a
                        SQL statement that returns Implicit Result Sets.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a statement handle for the next child statement available on <strong>$statement</strong>.
                  Returns <info>false</info> when child statements do not exist, or all child statements have
                  been returned by previous calls to <strong>oci_get_implicit_resultset()</strong>.


id: oci_internal_debug
type: function
doc:
<comment>Description:</comment>
  Enables or disables internal debug output
  
  Enables or disables internal debug output.

<comment>Param:</comment>
  <info>bool</info>  <strong>$onoff</strong>  Set this to <info>false</info> to turn debug output off or <info>true</info> to turn it on.

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


id: oci_lob_copy
type: function
doc:
<comment>Description:</comment>
  Copies large object
  
  Copies a large object or a part of a large object to another large object. Old LOB-recipient data
  will be overwritten.
  
  If you need to copy a particular part of a LOB to a particular position of a LOB, use
  <strong>OCILob::seek()</strong> to move LOB internal pointers.

<comment>Param:</comment>
  <info>OCILob</info>    <strong>$to</strong>      The destination LOB.
  <info>OCILob</info>    <strong>$from</strong>    The copied LOB.
  <info>int|null</info>  <strong>$length</strong>  Indicates the length of data to be copied.

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


id: oci_lob_is_equal
type: function
doc:
<comment>Description:</comment>
  Compares two LOB/FILE locators for equality
  
  Compares two LOB/FILE locators.

<comment>Param:</comment>
  <info>OCILob</info>  <strong>$lob1</strong>  A LOB identifier.
  <info>OCILob</info>  <strong>$lob2</strong>  A LOB identifier.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if these objects are equal, <info>false</info> otherwise.


id: oci_new_collection
type: function
doc:
<comment>Description:</comment>
  Allocates new collection object
  
  Allocates a new collection object.

<comment>Param:</comment>
  <info>resource</info>     <strong>$connection</strong>  An Oracle connection identifier, returned by  <strong>oci_connect()</strong> or
                            <strong>oci_pconnect()</strong>.
  <info>string</info>       <strong>$type_name</strong>   Should be a valid named type (uppercase).
  <info>string|null</info>  <strong>$schema</strong>      Should point to the scheme, where the named type was created. The name
                            of the current user is used when <info>null</info> is passed.

<comment>Return:</comment>
  <info>OCICollection|false</info>  Returns a new <class>OCICollection</class> object or <info>false</info> on error.


id: oci_new_connect
type: function
doc:
<comment>Description:</comment>
  Connect to the Oracle server using a unique connection
  
  Establishes a new connection to an Oracle server and logs on.
  
  Unlike <strong>oci_connect()</strong> and  <strong>oci_pconnect()</strong>, <strong>oci_new_connect()</strong> does not cache connections and will
  always return a brand-new freshly opened connection handle. This is useful if your application
  needs transactional isolation between two sets of queries.

<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_connect()</strong>
   * <strong>oci_pconnect()</strong>


id: oci_new_cursor
type: function
doc:
<comment>Description:</comment>
  Allocates and returns a new cursor (statement handle)
  
  Allocates a new statement handle on the specified connection.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  An Oracle connection identifier, returned by  <strong>oci_connect()</strong> or
                         <strong>oci_pconnect()</strong>.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a new statement handle, or <info>false</info> on error.


id: oci_new_descriptor
type: function
doc:
<comment>Description:</comment>
  Initializes a new empty LOB or FILE descriptor
  
  Allocates resources to hold descriptor or LOB locator.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  An Oracle connection identifier, returned by  <strong>oci_connect()</strong> or
                         <strong>oci_pconnect()</strong>.
  <info>int</info>       <strong>$type</strong>        Valid values for <strong>$type</strong> are:  <info>OCI_DTYPE_FILE</info>, <info>OCI_DTYPE_LOB</info> and
                         <info>OCI_DTYPE_ROWID</info>.

<comment>Return:</comment>
  <info>OCILob|null</info>  Returns a new LOB or FILE descriptor on success, or <info>null</info> on failure.

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


id: oci_num_fields
type: function
doc:
<comment>Description:</comment>
  Returns the number of result columns in a statement
  
  Gets the number of columns in the given <strong>$statement</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI statement identifier.

<comment>Return:</comment>
  <info>int</info>  Returns the number of columns as an <info>int</info>.


id: oci_num_rows
type: function
doc:
<comment>Description:</comment>
  Returns number of rows affected during statement execution
  
  Gets the number of rows affected during statement execution.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI statement identifier.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of rows affected as an integer, or <info>false</info> on failure


id: oci_parse
type: function
doc:
<comment>Description:</comment>
  Prepares an Oracle statement for execution
  
  Prepares <strong>$sql</strong> using <strong>$connection</strong> and returns the statement identifier, which can be used with
  <strong>oci_bind_by_name()</strong>,  <strong>oci_execute()</strong> and other functions.
  
  Statement identifiers can be freed with <strong>oci_free_statement()</strong> or by setting the variable to <info>null</info>.

<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>.
  <info>string</info>    <strong>$sql</strong>         The SQL or PL/SQL statement.
                         
                         SQL statements should not end with a semi-colon (";").  PL/SQL statements
                         should end with a semi-colon (";").

<comment>Return:</comment>
  <info>resource|false</info>  Returns a statement handle on success, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>oci_execute()</strong>
   * <strong>oci_free_statement()</strong>


id: oci_password_change
type: function
doc:
<comment>Description:</comment>
  Changes password of Oracle's user
  
  Changes password for user with <strong>$username</strong>.
  
  The <strong>oci_password_change()</strong> function is most useful for PHP command-line scripts, or when
  non-persistent connections are used throughout the PHP application.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>     An Oracle connection identifier, returned by  <strong>oci_connect()</strong> or
                            <strong>oci_pconnect()</strong>.
  <info>string</info>    <strong>$username</strong>       The Oracle user name.
  <info>string</info>    <strong>$old_password</strong>   The old password.
  <info>string</info>    <strong>$new_password</strong>   The new password to be set.
  <info>string</info>    <strong>$database_name</strong>  The database name.

<comment>Return:</comment>
  <info>bool</info>  When <strong>$database_name</strong> is provided, <strong>oci_password_change()</strong> returns <info>true</info> on success, or <info>false</info> on
        failure. When <strong>$connection</strong> is provided, <strong>oci_password_change()</strong> returns the connection resource
        on success, or <info>false</info> on failure.


id: oci_pconnect
type: function
doc:
<comment>Description:</comment>
  Connect to an Oracle database using a persistent connection
  
  Creates a persistent connection to an Oracle server and logs on.
  
  Persistent connections are cached and re-used between requests, resulting in reduced overhead on
  each page load; a typical PHP application will have a single persistent connection open against an
  Oracle server per Apache child process (or PHP FPM process). See the OCI8 Connection Handling and
  Connection Pooling section for more information.

<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_connect()</strong>
   * <strong>oci_new_connect()</strong>


id: oci_register_taf_callback
type: function
doc:
<comment>Description:</comment>
  Register a user-defined callback function for Oracle Database TAF
  
  Registers a user-defined callback function to <strong>$connection</strong>. If <strong>$connection</strong> fails due to instance or
  network failure, the registered callback function will be invoked for several times during
  failover. See OCI8 Transparent Application Failover (TAF) Support for information.
  
  When <strong>oci_register_taf_callback()</strong> is called multiple times, each registration overwrites the
  previous one.
  
  Use <strong>oci_unregister_taf_callback()</strong> to explicitly unregister a user-defined callback.
  
  TAF callback registration will NOT be saved across persistent connections, therefore the callback
  needs to be re-registered for a new persistent connection.

<comment>Param:</comment>
  <info>resource</info>       <strong>$connection</strong>  An Oracle connection identifier.
  <info>callable|null</info>  <strong>$callback</strong>    A user-defined callback to register for Oracle TAF. It can be a string
                              of the function name or a Closure (anonymous function).
                              
                              The interface of a TAF user-defined callback function is as follows:
                              
                              See the parameter description and an example on  OCI8 Transparent
                              Application Failover (TAF) Support page.

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

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


id: oci_result
type: function
doc:
<comment>Description:</comment>
  Returns field's value from the fetched row
  
  Returns the data from <strong>$column</strong> in the current row, fetched by <strong>oci_fetch()</strong>.
  
  For details on the data type mapping performed by
  the OCI8 extension, see the datatypes
  supported by the driver

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  
  <info>string|int</info>  <strong>$column</strong>     Can be either use the column number (1-based) or the column name. The case
                          of the column name must be the case that Oracle meta data describes the
                          column as, which is uppercase for columns created case insensitively.

<comment>Return:</comment>
  <info>mixed</info>  Returns everything as strings except for abstract types (ROWIDs, LOBs and FILEs). Returns
         <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_object()</strong>
   * <strong>oci_fetch_row()</strong>
   * <strong>oci_fetch_all()</strong>


id: oci_rollback
type: function
doc:
<comment>Description:</comment>
  Rolls back the outstanding database transaction
  
  Reverts all uncommitted changes for the Oracle <strong>$connection</strong> and ends the transaction.  It releases
  all locks held.  All Oracle <return>SAVEPOINTS</return> are erased.
  
  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_commit()</strong>
   * <strong>oci_execute()</strong>


id: oci_server_version
type: function
doc:
<comment>Description:</comment>
  Returns the Oracle Database version
  
  Returns a string with the Oracle Database version and available options

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  

<comment>Return:</comment>
  <info>string|false</info>  Returns the version information as a string or <info>false</info> on error.

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


id: oci_set_action
type: function
doc:
<comment>Description:</comment>
  Sets the action name
  
  Sets the action name for Oracle tracing.
  
  The action name is registered with the database when the next 'round-trip' from PHP to the
  database occurs, typically when an SQL statement is executed.
  
  The action name can subsequently be queried from database administration views such as <return>V$SESSION</return>.
  It can be used for tracing and monitoring such as with <return>V$SQLAREA</return> and
  <return>DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE</return>.
  
  The value may be retained across persistent connections.

<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>.
  <info>string</info>    <strong>$action</strong>      User chosen string up to 32 bytes long.

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

<comment>See Also:</comment>
   * <strong>oci_set_module_name()</strong>
   * <strong>oci_set_client_info()</strong>
   * <strong>oci_set_client_identifier()</strong>
   * <strong>oci_set_db_operation()</strong>


id: oci_set_call_timeout
type: function
doc:
<comment>Description:</comment>
  Sets a millisecond timeout for database calls
  
  Sets a timeout limiting the maxium time a database round-trip using this connection may take.
  
  Each OCI8 operation may make zero or more calls to Oracle's client library.  These internal calls
  may then may make zero or more round-trips to Oracle Database.  If any one of those round-trips
  takes more than <return>time_out</return> milliseconds, then the operation is cancelled and an error is returned to
  the application.
  
  The <return>time_out</return> value applies to each round-trip individually, not to the sum of all round-trips.
  Time spent processing in PHP OCI8 before or after the completion of each round-trip is not
  counted.
  
  When a call is interrupted, Oracle will attempt to clean up the connection for reuse.  This
  operation is allowed to run for another <return>time_out</return> period.  Depending on the outcome of the cleanup,
  the connection may or may not be reusable.
  
  When persistent connections are used, the timeout value will be retained across PHP requests.
  
  The <strong>oci_set_call_timeout()</strong> function is available when OCI8 uses Oracle 18 (or later) Client
  libraries.

<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>.
  <info>int</info>       <strong>$timeout</strong>     The maximum time in milliseconds that any single round-trip between PHP and
                         Oracle Database may take.

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


id: oci_set_client_identifier
type: function
doc:
<comment>Description:</comment>
  Sets the client identifier
  
  Sets the client identifier used by various database components to identify lightweight application
  users who authenticate as the same database user.
  
  The client identifier is registered with the database when the next 'round-trip' from PHP to the
  database occurs, typically when an SQL statement is executed.
  
  The identifier can subsequently be queried, for example with <return>SELECT
  SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL</return>.  Database administration views such as
  <return>V$SESSION</return> will also contain the value.  It can be used with <return>DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE</return>
  for tracing and can also be used for auditing.
  
  The value may be retained across page requests that use the same persistent connection.

<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>.
  <info>string</info>    <strong>$client_id</strong>   User chosen string up to 64 bytes long.

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

<comment>See Also:</comment>
   * <strong>oci_set_module_name()</strong>
   * <strong>oci_set_action()</strong>
   * <strong>oci_set_client_info()</strong>
   * <strong>oci_set_db_operation()</strong>


id: oci_set_client_info
type: function
doc:
<comment>Description:</comment>
  Sets the client information
  
  Sets the client information for Oracle tracing.
  
  The client information is registered with the database when the next 'round-trip' from PHP to the
  database occurs, typically when an SQL statement is executed.
  
  The client information can subsequently be queried from database  administration views such as
  <return>V$SESSION</return>.
  
  The value may be retained across persistent connections.

<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>.
  <info>string</info>    <strong>$client_info</strong>  User chosen string up to 64 bytes long.

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

<comment>See Also:</comment>
   * <strong>oci_set_module_name()</strong>
   * <strong>oci_set_action()</strong>
   * <strong>oci_set_client_identifier()</strong>
   * <strong>oci_set_db_operation()</strong>


id: oci_set_db_operation
type: function
doc:
<comment>Description:</comment>
  Sets the database operation
  
  Sets the DBOP for Oracle tracing.
  
  The database operation name is registered with the database when the next 'round-trip' from PHP to
  the database occurs, typically when a SQL statement is executed.
  
  The database operation can subsequently be queried from database administration views such as
  <return>V$SQL_MONITOR</return>.
  
  The <strong>oci_set_db_operation()</strong> function is available when OCI8 uses Oracle 12 (or later) Client
  libraries and Oracle Database 12 (or later).

<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>.
  <info>string</info>    <strong>$action</strong>      User chosen string.

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

<comment>See Also:</comment>
   * <strong>oci_set_action()</strong>
   * <strong>oci_set_module_name()</strong>
   * <strong>oci_set_client_info()</strong>
   * <strong>oci_set_client_identifier()</strong>


id: oci_set_edition
type: function
doc:
<comment>Description:</comment>
  Sets the database edition
  
  Sets the database "edition" of objects to be used by a subsequent connections.
  
  Oracle Editions allow concurrent versions of applications to run using the same schema and object
  names.  This is useful for upgrading live systems.
  
  Call <strong>oci_set_edition()</strong> before calling <strong>oci_connect()</strong>, <strong>oci_pconnect()</strong> or <strong>oci_new_connect()</strong>.
  
  If an edition is set that is not valid in the database, connection will fail even if
  <strong>oci_set_edition()</strong> returns success.
  
  When using persistent connections, if a connection with the requested edition setting already
  exists, it is reused.  Otherwise, a different persistent connection is created

<comment>Param:</comment>
  <info>string</info>  <strong>$edition</strong>  Oracle Database edition name previously created with the SQL "<return>CREATE EDITION</return>"
                    command.

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


id: oci_set_module_name
type: function
doc:
<comment>Description:</comment>
  Sets the module name
  
  Sets the module name for Oracle tracing.
  
  The module name is registered with the database when the next 'round-trip' from PHP to the
  database occurs, typically when an SQL statement is executed.
  
  The name can subsequently be queried from database administration views such as <return>V$SESSION</return>.  It can
  be used for tracing and monitoring such as with <return>V$SQLAREA</return> and
  <return>DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE</return>.
  
  The value may be retained across persistent connections.

<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>.
  <info>string</info>    <strong>$name</strong>        User chosen <info>string</info> up to 48 bytes long.

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

<comment>See Also:</comment>
   * <strong>oci_set_action()</strong>
   * <strong>oci_set_client_info()</strong>
   * <strong>oci_set_client_identifier()</strong>
   * <strong>oci_set_db_operation()</strong>


id: oci_set_prefetch
type: function
doc:
<comment>Description:</comment>
  Sets number of rows to be prefetched by queries
  
  Sets the number of rows to be buffered by the Oracle Client libraries after a successful query
  call to <strong>oci_execute()</strong> and for each subsequent internal fetch request to the database.  For queries
  returning a large number of rows, performance can be significantly improved by increasing the
  prefetch count above the default oci8.default_prefetch value.
  
  Prefetching is Oracle's efficient way of returning more than one data row from the database in
  each network request.  This can result in better network and CPU utilization.  The buffering of
  rows is internal to OCI8 and the behavior of OCI8 fetching functions is unchanged regardless of
  the prefetch count. For example, <strong>oci_fetch_row()</strong> will always return one row.  The prefetch buffer
  is per-statement and is not used by re-executed statements or by other connections.
  
  Call <strong>oci_set_prefetch()</strong> before calling <strong>oci_execute()</strong>.
  
  A tuning goal is to set the prefetch value to a reasonable size for the network and database to
  handle.  For queries returning a very large number of rows, overall system efficiency might be
  better if rows are retrieved from the database in several chunks (i.e set the prefetch value
  smaller than the number of rows).  This allows the database to handle other users' statements
  while the PHP script is processing the current set of rows.
  
  Query prefetching was introduced in Oracle 8i.  REF CURSOR prefetching was introduced in Oracle
  11gR2 and occurs when PHP is linked with Oracle 11gR2 (or later) Client libraries. Nested cursor
  prefetching was introduced in Oracle 11gR2 and requires both the Oracle Client libraries and the
  database to be version 11gR2 or greater.
  
  Prefetching is not supported when queries contain LONG or LOB columns.  The prefetch value is
  ignored and single-row fetches will be used in all the situations when prefetching is not
  supported.
  
  When using Oracle Database 12c, the prefetch value set by PHP can be overridden by Oracle's client
  <return>oraaccess.xml</return> configuration file.  Refer to Oracle documentation for more detail.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI8 statement
                        identifier created by <strong>oci_parse()</strong> and executed
                        by <strong>oci_execute()</strong>, or a <return>REF
                        CURSOR</return> statement identifier.
  <info>int</info>       <strong>$rows</strong>       The number of rows to be prefetched, &gt;= 0

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

<comment>See Also:</comment>
   * oci8.default_prefetch
     ini option
    


id: oci_set_prefetch_lob
type: function
doc:
<comment>Description:</comment>
  Sets the amount of data prefetched for each CLOB or BLOB.
  
  Sets the internal buffer size used to fetch each CLOB or BLOB value when the implementation gets
  the internal Oracle LOB locator from the database after a successful query call to <strong>oci_execute()</strong>
  and for each subsequent internal fetch request to the database.  Increasing this value can improve
  the performance of fetching smaller LOBs by reducing round-trips between PHP and the database.
  Memory usage will change.
  
  The value affects LOBs returned as OCILob instances and also those returned using <info>OCI_RETURN_LOBS</info>.
  
  Call <strong>oci_set_prefetch_lob()</strong> before calling <strong>oci_execute()</strong>.  If it is not called, the value of
  oci8.prefetch_lob_size is used.
  
  The LOB prefetch value should only be set with Oracle Database 12.2 or later.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>          A valid OCI8 statement
                                identifier created by <strong>oci_parse()</strong> and executed
                                by <strong>oci_execute()</strong>, or a <return>REF
                                CURSOR</return> statement identifier.
  <info>int</info>       <strong>$prefetch_lob_size</strong>  The number of bytes of each LOB to be prefetched, &gt;= 0

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

<comment>See Also:</comment>
   * oci8.prefetch_lob_size
     ini option
    


id: oci_statement_type
type: function
doc:
<comment>Description:</comment>
  Returns the type of a statement
  
  Returns a keyword identifying the type of the OCI8 <strong>$statement</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI8 statement identifier from <strong>oci_parse()</strong>.

<comment>Return:</comment>
  <info>string|false</info>  Returns the type of <strong>$statement</strong> as one of the following strings. Statement typeReturn
                StringNotes<return>ALTER</return><return>BEGIN</return><return>CALL</return><return>CREATE</return><return>DECLARE</return><return>DELETE</return><return>DROP</return><return>INSERT</return><return>SELECT</return><return>UPDATE</return><return>UNKNOWN</return>
                
                Returns <info>false</info> on error.


id: oci_unregister_taf_callback
type: function
doc:
<comment>Description:</comment>
  Unregister a user-defined callback function for Oracle Database TAF
  
  Unregister the user-defined callback function registered to <strong>$connection </strong> by
  <strong>oci_register_taf_callback()</strong>. See OCI8 Transparent Application Failover (TAF) Support  for
  information.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  An Oracle connection identifier.

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

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


id: ocibindbyname
type: function
doc:
<comment>Description:</comment>
  Alias of oci_bind_by_name
  
  Alias of <strong>oci_bind_by_name()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicancel
type: function
doc:
<comment>Description:</comment>
  Alias of oci_cancel
  
  Alias of <strong>oci_cancel()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicloselob
type: function
doc:
<comment>Description:</comment>
  Alias of OCILob::close
  
  Alias of <strong>OCILob::close()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicollappend
type: function
doc:
<comment>Description:</comment>
  Alias of OCICollection::append
  
  Alias of <strong>OCICollection::append()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicollassign
type: function
doc:
<comment>Description:</comment>
  Alias of OCICollection::assign
  
  Alias of <strong>OCICollection::assign()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicollassignelem
type: function
doc:
<comment>Description:</comment>
  Alias of OCICollection::assignElem
  
  Alias of <strong>OCICollection::assignElem()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicollgetelem
type: function
doc:
<comment>Description:</comment>
  Alias of OCICollection::getElem
  
  Alias of <strong>OCICollection::getElem()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicollmax
type: function
doc:
<comment>Description:</comment>
  Alias of OCICollection::max
  
  Alias of <strong>OCICollection::max()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicollsize
type: function
doc:
<comment>Description:</comment>
  Alias of OCICollection::size
  
  Alias of <strong>OCICollection::size()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicolltrim
type: function
doc:
<comment>Description:</comment>
  Alias of OCICollection::trim
  
  Alias of <strong>OCICollection::trim()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicolumnisnull
type: function
doc:
<comment>Description:</comment>
  Alias of oci_field_is_null
  
  Alias of <strong>oci_field_is_null()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicolumnname
type: function
doc:
<comment>Description:</comment>
  Alias of oci_field_name
  
  Alias of <strong>oci_field_name()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicolumnprecision
type: function
doc:
<comment>Description:</comment>
  Alias of oci_field_precision
  
  Alias of <strong>oci_field_precision()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicolumnscale
type: function
doc:
<comment>Description:</comment>
  Alias of oci_field_scale
  
  Alias of <strong>oci_field_scale()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicolumnsize
type: function
doc:
<comment>Description:</comment>
  Alias of oci_field_size
  
  Alias of <strong>oci_field_size()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicolumntype
type: function
doc:
<comment>Description:</comment>
  Alias of oci_field_type
  
  Alias of <strong>oci_field_type()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicolumntyperaw
type: function
doc:
<comment>Description:</comment>
  Alias of oci_field_type_raw
  
  Alias of <strong>oci_field_type_raw()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocicommit
type: function
doc:
<comment>Description:</comment>
  Alias of oci_commit
  
  Alias of <strong>oci_commit()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocidefinebyname
type: function
doc:
<comment>Description:</comment>
  Alias of oci_define_by_name
  
  Alias of <strong>oci_define_by_name()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocierror
type: function
doc:
<comment>Description:</comment>
  Alias of oci_error
  
  Alias of <strong>oci_error()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ociexecute
type: function
doc:
<comment>Description:</comment>
  Alias of oci_execute
  
  Alias of <strong>oci_execute()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocifetch
type: function
doc:
<comment>Description:</comment>
  Alias of oci_fetch
  
  Alias of <strong>oci_fetch()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocifetchinto
type: function
doc:
<comment>Description:</comment>
  Obsolete variant of oci_fetch_array, oci_fetch_object,
     oci_fetch_assoc and
     oci_fetch_row
  
  Obsolete variant of <strong>oci_fetch_array()</strong>, <strong>oci_fetch_object()</strong>, <strong>oci_fetch_assoc()</strong> and <strong>oci_fetch_row()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocifetchstatement
type: function
doc:
<comment>Description:</comment>
  Alias of oci_fetch_all
  
  Alias of <strong>oci_fetch_all()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocifreecollection
type: function
doc:
<comment>Description:</comment>
  Alias of OCICollection::free
  
  Alias of <strong>OCICollection::free()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocifreecursor
type: function
doc:
<comment>Description:</comment>
  Alias of oci_free_statement
  
  Alias of <strong>oci_free_statement()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocifreedesc
type: function
doc:
<comment>Description:</comment>
  Alias of OCILob::free
  
  Alias of <strong>OCILob::free()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ociinternaldebug
type: function
doc:
<comment>Description:</comment>
  Alias of oci_internal_debug
  
  Alias of <strong>oci_internal_debug()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ociloadlob
type: function
doc:
<comment>Description:</comment>
  Alias of OCILob::load
  
  Alias of <strong>OCILob::load()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocilogoff
type: function
doc:
<comment>Description:</comment>
  Alias of oci_close
  
  Alias of <strong>oci_close()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocilogon
type: function
doc:
<comment>Description:</comment>
  Alias of oci_connect
  
  Alias of <strong>oci_connect()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocinewcollection
type: function
doc:
<comment>Description:</comment>
  Alias of oci_new_collection
  
  Alias of <strong>oci_new_collection()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocinewcursor
type: function
doc:
<comment>Description:</comment>
  Alias of oci_new_cursor
  
  Alias of <strong>oci_new_cursor()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocinewdescriptor
type: function
doc:
<comment>Description:</comment>
  Alias of oci_new_descriptor
  
  Alias of <strong>oci_new_descriptor()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocinlogon
type: function
doc:
<comment>Description:</comment>
  Alias of oci_new_connect
  
  Alias of <strong>oci_new_connect()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocinumcols
type: function
doc:
<comment>Description:</comment>
  Alias of oci_num_fields
  
  Alias of <strong>oci_num_fields()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ociparse
type: function
doc:
<comment>Description:</comment>
  Alias of oci_parse
  
  Alias of <strong>oci_parse()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ociplogon
type: function
doc:
<comment>Description:</comment>
  Alias of oci_pconnect
  
  Alias of <strong>oci_pconnect()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ociresult
type: function
doc:
<comment>Description:</comment>
  Alias of oci_result
  
  Alias of <strong>oci_result()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocirollback
type: function
doc:
<comment>Description:</comment>
  Alias of oci_rollback
  
  Alias of <strong>oci_rollback()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocirowcount
type: function
doc:
<comment>Description:</comment>
  Alias of oci_num_rows
  
  Alias of <strong>oci_num_rows()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocisavelob
type: function
doc:
<comment>Description:</comment>
  Alias of OCILob::save
  
  Alias of <strong>OCILob::save()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocisavelobfile
type: function
doc:
<comment>Description:</comment>
  Alias of OCILob::import
  
  Alias of <strong>OCILob::import()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ociserverversion
type: function
doc:
<comment>Description:</comment>
  Alias of oci_server_version
  
  Alias of <strong>oci_server_version()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocisetprefetch
type: function
doc:
<comment>Description:</comment>
  Alias of oci_set_prefetch
  
  Alias of <strong>oci_set_prefetch()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ocistatementtype
type: function
doc:
<comment>Description:</comment>
  Alias of oci_statement_type
  
  Alias of <strong>oci_statement_type()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ociwritelobtofile
type: function
doc:
<comment>Description:</comment>
  Alias of OCILob::export
  
  Alias of <strong>OCILob::export()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: ociwritetemporarylob
type: function
doc:
<comment>Description:</comment>
  Alias of OCILob::writeTemporary
  
  Alias of <strong>OCILob::writeTemporary()</strong>
  
  This alias has been DEPRECATED as of PHP 5.4.0.  Relying
  on this alias is highly discouraged.


id: octdec
type: function
doc:
<comment>Description:</comment>
  Octal to decimal
  
  Returns the decimal equivalent of the octal number represented by the <strong>$octal_string</strong> argument.

<comment>Param:</comment>
  <info>string</info>  <strong>$octal_string</strong>  The octal string to convert. Any invalid characters in <strong>$octal_string</strong> are
                         silently ignored. As of PHP 7.4.0 supplying any invalid characters is
                         deprecated.

<comment>Return:</comment>
  <info>int|float</info>  The decimal representation of <strong>$octal_string</strong>

<comment>See Also:</comment>
   * <strong>decoct()</strong>
   * <strong>bindec()</strong>
   * <strong>hexdec()</strong>
   * <strong>base_convert()</strong>


id: odbc_autocommit
type: function
doc:
<comment>Description:</comment>
  Toggle autocommit behaviour
  
  Toggles autocommit behaviour.
  
  By default, auto-commit is on for a connection.  Disabling auto-commit is equivalent with starting
  a transaction.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>    The ODBC connection identifier,
                     see <strong>odbc_connect()</strong> for details.
  <info>bool</info>      <strong>$enable</strong>  If <strong>$enable</strong> is <info>true</info>, auto-commit is enabled, if it is <info>false</info> auto-commit is
                     disabled. If <info>null</info> is passed, this function returns the auto-commit status for
                     <strong>$odbc</strong>.

<comment>Return:</comment>
  <info>int|bool</info>  Without the <strong>$enable</strong> parameter, this function returns auto-commit status for <strong>$odbc</strong>.
            Non-zero is returned if auto-commit is on, 0 if it is off, or <info>false</info> if an error occurs.
            
            If <strong>$enable</strong> is set, this function returns <info>true</info> on success and <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>odbc_commit()</strong>
   * <strong>odbc_rollback()</strong>


id: odbc_binmode
type: function
doc:
<comment>Description:</comment>
  Handling of binary column data
  
  Controls handling of binary column data. ODBC SQL types affected are <return>BINARY</return>, <return>VARBINARY</return>, and
  <return>LONGVARBINARY</return>. The default mode can be set using the uodbc.defaultbinmode php.ini directive.
  
  When binary SQL data is converted to character C data (<info>ODBC_BINMODE_CONVERT</info>), each byte (8 bits)
  of source data is represented as two ASCII characters. These characters are the ASCII character
  representation of the number in its hexadecimal form. For example, a binary <return>00000001</return> is converted
  to <return>"01"</return> and a binary <return>11111111</return> is converted to <return>"FF"</return>.
  
  While the handling of <return>BINARY</return> and <return>VARBINARY</return> columns only depend on the binmode, the handling of
  <return>LONGVARBINARY</return> columns also depends on the longreadlen as well: LONGVARBINARY
  handlingbinmodelongreadlenresult<info>ODBC_BINMODE_PASSTHRU</info>0passthru<info>ODBC_BINMODE_RETURN</info>0passthru<info>ODBC_BINMODE_CONVERT</info>0passthru<info>ODBC_BINMODE_PASSTHRU</info>&gt;0passthru<info>ODBC_BINMODE_RETURN</info>&gt;0return
  as is<info>ODBC_BINMODE_CONVERT</info>&gt;0return as char
  
  If <strong>odbc_fetch_into()</strong> is used, passthru means that an empty string is returned for these columns.
  If <strong>odbc_result()</strong> is used, passthru means that the data are sent directly to the client (i.e.
  printed).

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
                        
                        If <strong>$statement</strong> is <return>0</return>, the settings apply as default for new results.
  <info>int</info>       <strong>$mode</strong>       Possible values for <strong>$mode</strong> are: <info>ODBC_BINMODE_PASSTHRU</info>: Passthru BINARY data
                        <info>ODBC_BINMODE_RETURN</info>: Return as is <info>ODBC_BINMODE_CONVERT</info>: Convert to char and
                        return   Handling of binary long columns is also affected by
                        <strong>odbc_longreadlen()</strong>.
                        
                        <info>ODBC_BINMODE_PASSTHRU</info>: Passthru BINARY data
                        
                        <info>ODBC_BINMODE_RETURN</info>: Return as is
                        
                        <info>ODBC_BINMODE_CONVERT</info>: Convert to char and return
                        
                        Handling of binary long columns is also affected by <strong>odbc_longreadlen()</strong>.

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


id: odbc_close
type: function
doc:
<comment>Description:</comment>
  Close an ODBC connection
  
  Closes down the connection to the database server.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>  The ODBC connection identifier,
                   see <strong>odbc_connect()</strong> for details.

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


id: odbc_close_all
type: function
doc:
<comment>Description:</comment>
  Close all ODBC connections
  
  <strong>odbc_close_all()</strong> will close down all connections to database server(s).

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


id: odbc_columnprivileges
type: function
doc:
<comment>Description:</comment>
  Lists columns and associated privileges for the given table
  
  Lists columns and associated privileges for the given table.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>     The ODBC connection identifier,
                         see <strong>odbc_connect()</strong> for details.
  <info>string|null</info>  <strong>$catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance).
  <info>string</info>       <strong>$schema</strong>   The schema ('owner' in ODBC 2 parlance). This parameter accepts the
                         following search patterns:
                         <return>%</return> to match zero or more characters,
                         and <return>_</return> to match a single character.
  <info>string</info>       <strong>$table</strong>    The table name. This parameter accepts the following search patterns:
                         <return>%</return> to match zero or more characters,
                         and <return>_</return> to match a single character.
  <info>string</info>       <strong>$column</strong>   The column name. This parameter accepts the following search patterns:
                         <return>%</return> to match zero or more characters,
                         and <return>_</return> to match a single character.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier or <info>false</info> on failure. This result identifier can
                  be used to fetch a list of columns and associated privileges.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>COLUMN_NAME</return><return>GRANTOR</return><return>GRANTEE</return><return>PRIVILEGE</return><return>IS_GRANTABLE</return>
                  Drivers can report additional columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>GRANTOR</return>
                  
                  <return>GRANTEE</return>
                  
                  <return>PRIVILEGE</return>
                  
                  <return>IS_GRANTABLE</return>
                  
                  The result set is ordered by <return>TABLE_CAT</return>, <return>TABLE_SCHEM</return>, <return>TABLE_NAME</return>, <return>COLUMN_NAME</return> and
                  <return>PRIVILEGE</return>.


id: odbc_columns
type: function
doc:
<comment>Description:</comment>
  Lists the column names in specified tables
  
  Lists all columns in the requested range.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>     The ODBC connection identifier,
                         see <strong>odbc_connect()</strong> for details.
  <info>string|null</info>  <strong>$catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance).
  <info>string|null</info>  <strong>$schema</strong>   The schema ('owner' in ODBC 2 parlance). This parameter accepts the
                         following search patterns:
                         <return>%</return> to match zero or more characters,
                         and <return>_</return> to match a single character.
  <info>string|null</info>  <strong>$table</strong>    The table name. This parameter accepts the following search patterns:
                         <return>%</return> to match zero or more characters,
                         and <return>_</return> to match a single character.
  <info>string|null</info>  <strong>$column</strong>   The column name. This parameter accepts the following search patterns:
                         <return>%</return> to match zero or more characters,
                         and <return>_</return> to match a single character.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>COLUMN_NAME</return><return>DATA_TYPE</return><return>TYPE_NAME</return><return>COLUMN_SIZE</return><return>BUFFER_LENGTH</return><return>DECIMAL_DIGITS</return><return>NUM_PREC_RADIX</return><return>NULLABLE</return><return>REMARKS</return><return>COLUMN_DEF</return><return>SQL_DATA_TYPE</return><return>SQL_DATETIME_SUB</return><return>CHAR_OCTET_LENGTH</return><return>ORDINAL_POSITION</return><return>IS_NULLABLE</return>
                  Drivers can report additional columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>DATA_TYPE</return>
                  
                  <return>TYPE_NAME</return>
                  
                  <return>COLUMN_SIZE</return>
                  
                  <return>BUFFER_LENGTH</return>
                  
                  <return>DECIMAL_DIGITS</return>
                  
                  <return>NUM_PREC_RADIX</return>
                  
                  <return>NULLABLE</return>
                  
                  <return>REMARKS</return>
                  
                  <return>COLUMN_DEF</return>
                  
                  <return>SQL_DATA_TYPE</return>
                  
                  <return>SQL_DATETIME_SUB</return>
                  
                  <return>CHAR_OCTET_LENGTH</return>
                  
                  <return>ORDINAL_POSITION</return>
                  
                  <return>IS_NULLABLE</return>
                  
                  The result set is ordered by <return>TABLE_CAT</return>, <return>TABLE_SCHEM</return>, <return>TABLE_NAME</return> and
                  <return>ORDINAL_POSITION</return>.

<comment>See Also:</comment>
   * <strong>odbc_columnprivileges()</strong>
   * <strong>odbc_procedurecolumns()</strong>


id: odbc_commit
type: function
doc:
<comment>Description:</comment>
  Commit an ODBC transaction
  
  Commits all pending transactions on the connection.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>  The ODBC connection identifier,
                   see <strong>odbc_connect()</strong> for details.

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


id: odbc_connect
type: function
doc:
<comment>Description:</comment>
  Connect to a datasource
  
  The connection id returned by this functions is needed by other ODBC functions. You can have
  multiple connections open at once as long as they either use different db or different
  credentials.
  
  With some ODBC drivers, executing a complex stored procedure may fail with an error similar to:
  "Cannot open a cursor on a stored procedure that has anything other than a single select statement
  in it".  Using SQL_CUR_USE_ODBC may avoid that error. Also, some drivers don't support the
  optional row_number parameter in <strong>odbc_fetch_row()</strong>. SQL_CUR_USE_ODBC might help in that case, too.

<comment>Param:</comment>
  <info>string</info>  <strong>$dsn</strong>            The database source name for the connection. Alternatively, a DSN-less
                          connection string can be used.
  <info>string</info>  <strong>$user</strong>           The username.
  <info>string</info>  <strong>$password</strong>       The password.
  <info>int</info>     <strong>$cursor_option</strong>  This sets the type of cursor to be used for this connection. This
                          parameter is not normally needed, but can be useful for working around
                          problems with some ODBC drivers.
                          
                          The following constants are defined for cursortype:
                          
                           SQL_CUR_USE_IF_NEEDED  SQL_CUR_USE_ODBC  SQL_CUR_USE_DRIVER 
                          
                          SQL_CUR_USE_IF_NEEDED
                          
                          SQL_CUR_USE_ODBC
                          
                          SQL_CUR_USE_DRIVER

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC connection,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * For persistent connections: <strong>odbc_pconnect()</strong>


id: odbc_connection_string_is_quoted
type: function
doc:
<comment>Description:</comment>
  Determines if an ODBC connection string value is quoted
  
  Determines if a string is properly quoted for an ODBC connection string value. ODBC connection
  string quoting is performed using curly braces, and ending braces within a string must be escaped
  through repeating them twice, similar to SQL quoting.

<comment>Param:</comment>
  <info>string</info>  <strong>$str</strong>  The string to check for quoting.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if quoted properly, <info>false</info> if not.

<comment>See Also:</comment>
   * <strong>odbc_connection_string_quote()</strong>
   * <strong>odbc_connection_string_should_quote()</strong>


id: odbc_connection_string_quote
type: function
doc:
<comment>Description:</comment>
  Quotes an ODBC connection string value
  
  Quotes a value for a connection string, according to ODBC rules. That is, it will be surrounded by
  quotes, and any ending curly braces will be escaped. This should be done for any connection string
  values that come from user input. Not doing so can lead to issues with parsing the connection
  string, or values being injected into the connection string.
  
  Note that this function does not check if the string is already quoted, nor if the string needs
  quoting. For that, call <strong>odbc_connection_string_is_quoted()</strong> and
  <strong>odbc_connection_string_should_quote()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$str</strong>  The unquoted string.

<comment>Return:</comment>
  <info>string</info>  A quoted string, surrounded by curly braces, and properly escaped.

<comment>See Also:</comment>
   * <strong>odbc_connection_string_is_quoted()</strong>
   * <strong>odbc_connection_string_should_quote()</strong>


id: odbc_connection_string_should_quote
type: function
doc:
<comment>Description:</comment>
  Determines if an ODBC connection string value should be quoted
  
  Determines if a string needs to be quoted for an ODBC connection string value; that is, if it
  contains special characters.
  
  Note that this does not check if the string is already quoted; an already quoted string will
  contain characters that will make this function return true. You should call
  <strong>odbc_connection_string_is_quoted()</strong> to check.

<comment>Param:</comment>
  <info>string</info>  <strong>$str</strong>  The string to check for.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the string should be quoted; <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>odbc_connection_string_quote()</strong>
   * <strong>odbc_connection_string_is_quoted()</strong>


id: odbc_cursor
type: function
doc:
<comment>Description:</comment>
  Get cursorname
  
  Gets the cursorname for the given result_id.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.

<comment>Return:</comment>
  <info>string|false</info>  Returns the cursor name, as a string,  or <info>false</info> on failure.


id: odbc_data_source
type: function
doc:
<comment>Description:</comment>
  Returns information about available DSNs
  
  This function will return the list of available DSN (after calling it several times).

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>        The ODBC connection identifier,
                         see <strong>odbc_connect()</strong> for details.
  <info>int</info>       <strong>$fetch_type</strong>  The <strong>$fetch_type</strong> can be one of two constant types: <info>SQL_FETCH_FIRST</info>,
                         <info>SQL_FETCH_NEXT</info>. Use <info>SQL_FETCH_FIRST</info> the first time this function is called,
                         thereafter use the <info>SQL_FETCH_NEXT</info>.

<comment>Return:</comment>
  <info>array|false</info>  Returns <info>false</info> on error, an <info>array</info> upon success, and <info>null</info> after fetching the last
               available DSN.


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


id: odbc_error
type: function
doc:
<comment>Description:</comment>
  Get the last error code
  
  Returns a six-digit ODBC state, or an empty string if there has been no errors.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$odbc</strong>  The ODBC connection identifier,
                        see <strong>odbc_connect()</strong> for details.

<comment>Return:</comment>
  <info>string</info>  If <strong>$odbc</strong> is specified, the last state of that connection is returned, else the last state
          of any connection is returned.
          
          This function returns meaningful value only if last odbc query failed (i.e. <strong>odbc_exec()</strong>
          returned <info>false</info>).

<comment>See Also:</comment>
   * <strong>odbc_errormsg()</strong>
   * <strong>odbc_exec()</strong>


id: odbc_errormsg
type: function
doc:
<comment>Description:</comment>
  Get the last error message
  
  Returns a string containing the last ODBC error message, or an empty string if there has been no
  errors.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$odbc</strong>  The ODBC connection identifier,
                        see <strong>odbc_connect()</strong> for details.

<comment>Return:</comment>
  <info>string</info>  If <strong>$odbc</strong> is specified, the last state of that connection is returned, else the last state
          of any connection is returned.
          
          This function returns meaningful value only if last odbc query failed (i.e. <strong>odbc_exec()</strong>
          returned <info>false</info>).

<comment>See Also:</comment>
   * <strong>odbc_error()</strong>
   * <strong>odbc_exec()</strong>


id: odbc_exec
type: function
doc:
<comment>Description:</comment>
  Directly execute an SQL statement
  
  Sends an SQL statement to the database server.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>   The ODBC connection identifier,
                    see <strong>odbc_connect()</strong> for details.
  <info>string</info>    <strong>$query</strong>  The SQL statement.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier if the SQL command was executed successfully, or
                  <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>odbc_prepare()</strong>
   * <strong>odbc_execute()</strong>


id: odbc_execute
type: function
doc:
<comment>Description:</comment>
  Execute a prepared statement
  
  Executes a statement prepared with <strong>odbc_prepare()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result id <info>resource</info>, from <strong>odbc_prepare()</strong>.
  <info>array</info>     <strong>$params</strong>     Parameters in <strong>$params</strong> will be substituted for placeholders in the prepared
                        statement in order. Elements of this array will be converted to strings by
                        calling this function.
                        
                        Any parameters in <strong>$params</strong> which start and end with single quotes will be
                        taken as the name of a file to read and send to the database server as the
                        data for the appropriate placeholder.
                        
                        If you wish to store a string which actually begins and ends with single
                        quotes, you must add a space or other non-single-quote character to the
                        beginning or end of the parameter, which will prevent the parameter from
                        being taken as a file name. If this is not an option, then you must use
                        another mechanism to store the string, such as executing the query directly
                        with <strong>odbc_exec()</strong>).

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

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


id: odbc_fetch_array
type: function
doc:
<comment>Description:</comment>
  Fetch a result row as an associative array
  
  Fetch an associative <info>array</info> from an ODBC query.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result resource from <strong>odbc_exec()</strong>.
  <info>int</info>       <strong>$row</strong>        Optionally choose which row number to retrieve.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array that corresponds to the fetched row, or <info>false</info> if there  are no more
               rows.

<comment>See Also:</comment>
   * <strong>odbc_fetch_row()</strong>
   * <strong>odbc_fetch_object()</strong>
   * <strong>odbc_num_rows()</strong>


id: odbc_fetch_into
type: function
doc:
<comment>Description:</comment>
  Fetch one result row into array
  
  Fetch one result row into <info>array</info>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result <info>resource</info>.
  <info>array</info>     <strong>$array</strong>      The result <info>array</info> that can be of any type since it will be converted to type
                        array. The array will contain the column values starting at array index 0.
  <info>int</info>       <strong>$row</strong>        The row number.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of columns in the result; <info>false</info> on error.


id: odbc_fetch_object
type: function
doc:
<comment>Description:</comment>
  Fetch a result row as an object
  
  Fetch an <info>object</info> from an ODBC query.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result resource from <strong>odbc_exec()</strong>.
  <info>int</info>       <strong>$row</strong>        Optionally choose which row number to retrieve.

<comment>Return:</comment>
  <info>stdClass|false</info>  Returns an object that corresponds to the fetched row, or <info>false</info> if there  are no
                  more rows.

<comment>See Also:</comment>
   * <strong>odbc_fetch_row()</strong>
   * <strong>odbc_fetch_array()</strong>
   * <strong>odbc_num_rows()</strong>


id: odbc_fetch_row
type: function
doc:
<comment>Description:</comment>
  Fetch a row
  
  Fetches a row of the data that was returned by <strong>odbc_do()</strong> or <strong>odbc_exec()</strong>. After <strong>odbc_fetch_row()</strong> is
  called, the fields of that row can be accessed with <strong>odbc_result()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int|null</info>  <strong>$row</strong>        If <strong>$row</strong> is not specified, <strong>odbc_fetch_row()</strong> will try to fetch the next row in
                        the result set. Calls to <strong>odbc_fetch_row()</strong> with and without <strong>$row</strong> can be
                        mixed.
                        
                        To step through the result more than once, you can call <strong>odbc_fetch_row()</strong>
                        with <strong>$row</strong> 1, and then continue doing <strong>odbc_fetch_row()</strong> without <strong>$row</strong> to review
                        the result.  If a driver doesn't support fetching rows by number, the <strong>$row</strong>
                        parameter is ignored.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if there was a row, <info>false</info> otherwise.


id: odbc_field_len
type: function
doc:
<comment>Description:</comment>
  Get the length (precision) of a field
  
  Gets the length of the field referenced by number in the given result identifier.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int</info>       <strong>$field</strong>      The field number. Field numbering starts at 1.

<comment>Return:</comment>
  <info>int|false</info>  Returns the field length, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>odbc_field_scale()</strong> to get the scale of a
    floating point number


id: odbc_field_name
type: function
doc:
<comment>Description:</comment>
  Get the columnname
  
  Gets the name of the field occupying the given column number in the given result identifier.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int</info>       <strong>$field</strong>      The field number. Field numbering starts at 1.

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


id: odbc_field_num
type: function
doc:
<comment>Description:</comment>
  Return column number
  
  Gets the number of the column slot that corresponds to the named field in the given result
  identifier.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>string</info>    <strong>$field</strong>      The field name.

<comment>Return:</comment>
  <info>int|false</info>  Returns the field number as a integer, or <info>false</info> on error. Field numbering starts at 1.


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

<comment>See Also:</comment>
   * <strong>odbc_field_scale()</strong> to get the scale of a
    floating point number.


id: odbc_field_scale
type: function
doc:
<comment>Description:</comment>
  Get the scale of a field
  
  Gets the scale of the field referenced by number in the given result identifier.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int</info>       <strong>$field</strong>      The field number. Field numbering starts at 1.

<comment>Return:</comment>
  <info>int|false</info>  Returns the field scale as a integer, or <info>false</info> on error.


id: odbc_field_type
type: function
doc:
<comment>Description:</comment>
  Datatype of a field
  
  Gets the SQL type of the field referenced by number in the given result identifier.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int</info>       <strong>$field</strong>      The field number. Field numbering starts at 1.

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


id: odbc_foreignkeys
type: function
doc:
<comment>Description:</comment>
  Retrieves a list of foreign keys
  
  Retrieves a list of foreign keys in the specified table or a list of foreign keys in other tables
  that refer to the primary key in the specified table

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>        The ODBC connection identifier,
                            see <strong>odbc_connect()</strong> for details.
  <info>string|null</info>  <strong>$pk_catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance) of the primary key table.
  <info>string</info>       <strong>$pk_schema</strong>   The schema ('owner' in ODBC 2 parlance) of the primary key table.
  <info>string</info>       <strong>$pk_table</strong>    The primary key table.
  <info>string</info>       <strong>$fk_catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance) of the foreign key table.
  <info>string</info>       <strong>$fk_schema</strong>   The schema ('owner' in ODBC 2 parlance) of the foreign key table.
  <info>string</info>       <strong>$fk_table</strong>    The foreign key table.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  <return>PKTABLE_CAT</return><return>PKTABLE_SCHEM</return><return>PKTABLE_NAME</return><return>PKCOLUMN_NAME</return><return>FKTABLE_CAT</return><return>FKTABLE_SCHEM</return><return>FKTABLE_NAME</return><return>FKCOLUMN_NAME</return><return>KEY_SEQ</return><return>UPDATE_RULE</return><return>DELETE_RULE</return><return>FK_NAME</return><return>PK_NAME</return><return>DEFERRABILITY</return>
                  Drivers can report additional columns.
                  
                  <return>PKTABLE_CAT</return>
                  
                  <return>PKTABLE_SCHEM</return>
                  
                  <return>PKTABLE_NAME</return>
                  
                  <return>PKCOLUMN_NAME</return>
                  
                  <return>FKTABLE_CAT</return>
                  
                  <return>FKTABLE_SCHEM</return>
                  
                  <return>FKTABLE_NAME</return>
                  
                  <return>FKCOLUMN_NAME</return>
                  
                  <return>KEY_SEQ</return>
                  
                  <return>UPDATE_RULE</return>
                  
                  <return>DELETE_RULE</return>
                  
                  <return>FK_NAME</return>
                  
                  <return>PK_NAME</return>
                  
                  <return>DEFERRABILITY</return>
                  
                  If the foreign keys associated with a primary key are requested, the result set is
                  ordered by <return>FKTABLE_CAT</return>, <return>FKTABLE_SCHEM</return>, <return>FKTABLE_NAME</return> and <return>KEY_SEQ</return>. If the primary
                  keys associated with a foreign key are requested, the result set is ordered by
                  <return>PKTABLE_CAT</return>, <return>PKTABLE_SCHEM</return>, <return>PKTABLE_NAME</return> and <return>KEY_SEQ</return>.
                  
                  If <strong>$pk_table</strong> contains a table name, <strong>odbc_foreignkeys()</strong> returns a result set
                  containing the primary key of the specified table and all of the foreign keys that
                  refer to it.
                  
                  If <strong>$fk_table</strong> contains a table name, <strong>odbc_foreignkeys()</strong> returns a result set
                  containing all of the foreign keys in the specified table and the primary keys (in
                  other tables) to which they refer.
                  
                  If both <strong>$pk_table</strong> and <strong>$fk_table</strong> contain table names, <strong>odbc_foreignkeys()</strong> returns
                  the foreign keys in the table specified in <strong>$fk_table</strong> that refer to the primary key
                  of the table specified in <strong>$pk_table</strong>. This should be one key at most.

<comment>See Also:</comment>
   * <strong>odbc_tables()</strong>
   * <strong>odbc_primarykeys()</strong>


id: odbc_free_result
type: function
doc:
<comment>Description:</comment>
  Free resources associated with a result
  
  Free resources associated with a result.
  
  <strong>odbc_free_result()</strong> only needs to be called if you are worried about using too much memory while
  your script is running. All result memory will automatically be freed when the script is finished.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.

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


id: odbc_gettypeinfo
type: function
doc:
<comment>Description:</comment>
  Retrieves information about data types supported by the data source
  
  Retrieves information about data types supported by the data source.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>       The ODBC connection identifier,
                        see <strong>odbc_connect()</strong> for details.
  <info>int</info>       <strong>$data_type</strong>  The data type, which can be used to restrict the information to a single
                        data type.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  TYPE_NAMEDATA_TYPEPRECISIONLITERAL_PREFIXLITERAL_SUFFIXCREATE_PARAMSNULLABLECASE_SENSITIVESEARCHABLEUNSIGNED_ATTRIBUTEMONEYAUTO_INCREMENTLOCAL_TYPE_NAMEMINIMUM_SCALEMAXIMUM_SCALE
                  
                  TYPE_NAME
                  
                  DATA_TYPE
                  
                  PRECISION
                  
                  LITERAL_PREFIX
                  
                  LITERAL_SUFFIX
                  
                  CREATE_PARAMS
                  
                  NULLABLE
                  
                  CASE_SENSITIVE
                  
                  SEARCHABLE
                  
                  UNSIGNED_ATTRIBUTE
                  
                  MONEY
                  
                  AUTO_INCREMENT
                  
                  LOCAL_TYPE_NAME
                  
                  MINIMUM_SCALE
                  
                  MAXIMUM_SCALE
                  
                  The result set is ordered by DATA_TYPE and TYPE_NAME.


id: odbc_longreadlen
type: function
doc:
<comment>Description:</comment>
  Handling of LONG columns
  
  Controls handling of <return>LONG</return>, <return>LONGVARCHAR</return> and <return>LONGVARBINARY</return> columns. The default length can be set
  using the uodbc.defaultlrl php.ini directive.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int</info>       <strong>$length</strong>     The number of bytes returned to PHP is controlled by the parameter length.
                        If it is set to <return>0</return>, long column data is passed through to the client (i.e.
                        printed) when retrieved with <strong>odbc_result()</strong>.

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


id: odbc_next_result
type: function
doc:
<comment>Description:</comment>
  Checks if multiple results are available
  
  Checks if there are more result sets available as well as allowing access to the next result set
  via <strong>odbc_fetch_array()</strong>, <strong>odbc_fetch_row()</strong>, <strong>odbc_result()</strong>, etc.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if there are more result sets, <info>false</info> otherwise.


id: odbc_num_fields
type: function
doc:
<comment>Description:</comment>
  Number of columns in a result
  
  Gets the number of fields (columns) in an ODBC result.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier returned by <strong>odbc_exec()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the number of fields, or -1 on error.


id: odbc_num_rows
type: function
doc:
<comment>Description:</comment>
  Number of rows in a result
  
  Gets the number of rows in a result. For INSERT, UPDATE and DELETE statements <strong>odbc_num_rows()</strong>
  returns the number of rows affected.  For a SELECT clause this <return>can</return> be the number of rows
  available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier returned by <strong>odbc_exec()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the number of rows in an ODBC result. This function will return -1 on error.


id: odbc_pconnect
type: function
doc:
<comment>Description:</comment>
  Open a persistent database connection
  
  Opens a persistent database connection.
  
  This function is much like <strong>odbc_connect()</strong>, except that the connection is not really closed when
  the script has finished.  Future requests for a connection with the same <strong>$dsn</strong>, <strong>$user</strong>, <strong>$password</strong>
  combination (via <strong>odbc_connect()</strong> and <strong>odbc_pconnect()</strong>) can reuse the persistent connection.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC connection,  or <info>false</info> on failure. error.

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


id: odbc_prepare
type: function
doc:
<comment>Description:</comment>
  Prepares a statement for execution
  
  Prepares a statement for execution. The result identifier can be used later to execute the
  statement with <strong>odbc_execute()</strong>.
  
  Some databases (such as IBM DB2, MS SQL Server, and Oracle) support stored procedures that accept
  parameters of type IN, INOUT, and OUT as defined by the ODBC specification.  However, the Unified
  ODBC driver currently only supports parameters of type IN to stored procedures.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>   The ODBC connection identifier,
                    see <strong>odbc_connect()</strong> for details.
  <info>string</info>    <strong>$query</strong>  The query string statement being prepared.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier if the SQL command was prepared successfully.
                  Returns <info>false</info> on error.

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


id: odbc_primarykeys
type: function
doc:
<comment>Description:</comment>
  Gets the primary keys for a table
  
  Returns a result identifier that can be used to fetch the column names that comprise the primary
  key for a table.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>     The ODBC connection identifier,
                         see <strong>odbc_connect()</strong> for details.
  <info>string|null</info>  <strong>$catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance).
  <info>string</info>       <strong>$schema</strong>   The schema ('owner' in ODBC 2 parlance).
  <info>string</info>       <strong>$table</strong>    

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>COLUMN_NAME</return><return>KEY_SEQ</return><return>PK_NAME</return> Drivers can report
                  additional columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>KEY_SEQ</return>
                  
                  <return>PK_NAME</return>
                  
                  The result set is ordered by <return>TABLE_CAT</return>, <return>TABLE_SCHEM</return>, <return>TABLE_NAME</return> and <return>KEY_SEQ</return>.

<comment>See Also:</comment>
   * <strong>odbc_tables()</strong>
   * <strong>odbc_foreignkeys()</strong>


id: odbc_procedurecolumns
type: function
doc:
<comment>Description:</comment>
  Retrieve information about parameters to procedures
  
  Retrieve information about parameters to procedures.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>       The ODBC connection identifier,
                           see <strong>odbc_connect()</strong> for details.
  <info>string|null</info>  <strong>$catalog</strong>    The catalog ('qualifier' in ODBC 2 parlance).
  <info>string|null</info>  <strong>$schema</strong>     The schema ('owner' in ODBC 2 parlance). This parameter accepts the
                           following search patterns:
                           <return>%</return> to match zero or more characters,
                           and <return>_</return> to match a single character.
  <info>string|null</info>  <strong>$procedure</strong>  The proc. This parameter accepts the following search patterns:
                           <return>%</return> to match zero or more characters,
                           and <return>_</return> to match a single character.
  <info>string|null</info>  <strong>$column</strong>     The column. This parameter accepts the following search patterns:
                           <return>%</return> to match zero or more characters,
                           and <return>_</return> to match a single character.

<comment>Return:</comment>
  <info>resource|false</info>  Returns the list of input and output parameters, as well as the columns that make
                  up the result set for the specified procedures.  Returns an ODBC result identifier
                  or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  <return>PROCEDURE_CAT</return><return>PROCEDURE_SCHEM</return><return>PROCEDURE_NAME</return><return>COLUMN_NAME</return><return>COLUMN_TYPE</return><return>DATA_TYPE</return><return>TYPE_NAME</return><return>COLUMN_SIZE</return><return>BUFFER_LENGTH</return><return>DECIMAL_DIGITS</return><return>NUM_PREC_RADIX</return><return>NULLABLE</return><return>REMARKS</return><return>COLUMN_DEF</return><return>SQL_DATA_TYPE</return><return>SQL_DATETIME_SUB</return><return>CHAR_OCTET_LENGTH</return><return>ORDINAL_POSITION</return><return>IS_NULLABLE</return>
                  Drivers can report additional columns.
                  
                  <return>PROCEDURE_CAT</return>
                  
                  <return>PROCEDURE_SCHEM</return>
                  
                  <return>PROCEDURE_NAME</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>COLUMN_TYPE</return>
                  
                  <return>DATA_TYPE</return>
                  
                  <return>TYPE_NAME</return>
                  
                  <return>COLUMN_SIZE</return>
                  
                  <return>BUFFER_LENGTH</return>
                  
                  <return>DECIMAL_DIGITS</return>
                  
                  <return>NUM_PREC_RADIX</return>
                  
                  <return>NULLABLE</return>
                  
                  <return>REMARKS</return>
                  
                  <return>COLUMN_DEF</return>
                  
                  <return>SQL_DATA_TYPE</return>
                  
                  <return>SQL_DATETIME_SUB</return>
                  
                  <return>CHAR_OCTET_LENGTH</return>
                  
                  <return>ORDINAL_POSITION</return>
                  
                  <return>IS_NULLABLE</return>
                  
                  The result set is ordered by <return>PROCEDURE_CAT</return>, <return>PROCEDURE_SCHEM</return>, <return>PROCEDURE_NAME</return> and
                  <return>COLUMN_TYPE</return>.

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


id: odbc_procedures
type: function
doc:
<comment>Description:</comment>
  Get the list of procedures stored in a specific data source
  
  Lists all procedures in the requested range.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>       The ODBC connection identifier,
                           see <strong>odbc_connect()</strong> for details.
  <info>string|null</info>  <strong>$catalog</strong>    The catalog ('qualifier' in ODBC 2 parlance).
  <info>string|null</info>  <strong>$schema</strong>     The schema ('owner' in ODBC 2 parlance). This parameter accepts the
                           following search patterns:
                           <return>%</return> to match zero or more characters,
                           and <return>_</return> to match a single character.
  <info>string|null</info>  <strong>$procedure</strong>  The name. This parameter accepts the following search patterns:
                           <return>%</return> to match zero or more characters,
                           and <return>_</return> to match a single character.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier containing the information or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  <return>PROCEDURE_CAT</return><return>PROCEDURE_SCHEM</return><return>PROCEDURE_NAME</return><return>NUM_INPUT_PARAMS</return><return>NUM_OUTPUT_PARAMS</return><return>NUM_RESULT_SETS</return><return>REMARKS</return><return>PROCEDURE_TYPE</return>
                  Drivers can report additional columns.
                  
                  <return>PROCEDURE_CAT</return>
                  
                  <return>PROCEDURE_SCHEM</return>
                  
                  <return>PROCEDURE_NAME</return>
                  
                  <return>NUM_INPUT_PARAMS</return>
                  
                  <return>NUM_OUTPUT_PARAMS</return>
                  
                  <return>NUM_RESULT_SETS</return>
                  
                  <return>REMARKS</return>
                  
                  <return>PROCEDURE_TYPE</return>
                  
                  The result set is ordered by <return>PROCEDURE_CAT</return>, <return>PROCEDURE_SCHEMA</return> and <return>PROCEDURE_NAME</return>.

<comment>See Also:</comment>
   * <strong>odbc_procedurecolumns()</strong>
   * <strong>odbc_tables()</strong>


id: odbc_result
type: function
doc:
<comment>Description:</comment>
  Get result data
  
  Get result data

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  The ODBC <info>resource</info>.
  <info>string|int</info>  <strong>$field</strong>      The field name being retrieved. It can either be an integer containing the
                          column number of the field you want; or it can be a string containing the
                          name of the field.

<comment>Return:</comment>
  <info>string|bool|null</info>  Returns the string contents of the field, <info>false</info> on error, <info>null</info> for NULL data, or
                    <info>true</info> for binary data.


id: odbc_result_all
type: function
doc:
<comment>Description:</comment>
  Print result as HTML table
  
  Prints all rows from a result identifier produced by <strong>odbc_exec()</strong>. The result is printed in HTML
  table format. The data is not escaped.
  
  This function is not supposed to be used in production environments; it is merely meant for
  development purposes, to get a result set quickly rendered.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>string</info>    <strong>$format</strong>     Additional overall table formatting.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of rows in the result or <info>false</info> on error.


id: odbc_rollback
type: function
doc:
<comment>Description:</comment>
  Rollback a transaction
  
  Rolls back all pending statements on the connection.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>  The ODBC connection identifier,
                   see <strong>odbc_connect()</strong> for details.

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


id: odbc_setoption
type: function
doc:
<comment>Description:</comment>
  Adjust ODBC settings
  
  This function allows fiddling with the ODBC options for a particular connection or query result.
  It was written to help find work around to problems in quirky ODBC drivers.  You should probably
  only use this function if you are an ODBC programmer and understand the effects the various
  options will have.  You will certainly need a good ODBC reference to explain all the different
  options and values that can be used.  Different driver versions support different options.
  
  Because the effects may vary depending on the ODBC driver, use of this function in scripts to be
  made publicly available is strongly discouraged.  Also, some ODBC options are not available to
  this function because they must be set before the connection is established or the query is
  prepared.  However, if on a particular job it can make PHP work so your boss doesn't tell you to
  use a commercial product, that's all that really matters.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>    Is a connection id or result id on which to change the settings. For
                     SQLSetConnectOption(), this is a connection id. For SQLSetStmtOption(), this is
                     a result id.
  <info>int</info>       <strong>$which</strong>   Is the ODBC function to use. The value should be 1 for SQLSetConnectOption()
                     and 2 for SQLSetStmtOption().
  <info>int</info>       <strong>$option</strong>  The option to set.
  <info>int</info>       <strong>$value</strong>   The value for the given <strong>$option</strong>.

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


id: odbc_specialcolumns
type: function
doc:
<comment>Description:</comment>
  Retrieves special columns
  
  Retrieves either the optimal set of columns that uniquely identifies a row in the table, or
  columns that are automatically updated when any value in the row is updated by a transaction.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>      The ODBC connection identifier,
                          see <strong>odbc_connect()</strong> for details.
  <info>int</info>          <strong>$type</strong>      When the type argument is <info>SQL_BEST_ROWID</info>, <strong>odbc_specialcolumns()</strong> returns
                          the column or columns that uniquely identify each row in the table.
                          
                          When the type argument is <info>SQL_ROWVER</info>, <strong>odbc_specialcolumns()</strong> returns the
                          column or columns in the specified table, if any, that are automatically
                          updated by the data source when any value in the row is updated by any
                          transaction.
  <info>string|null</info>  <strong>$catalog</strong>   The catalog ('qualifier' in ODBC 2 parlance).
  <info>string</info>       <strong>$schema</strong>    The schema ('owner' in ODBC 2 parlance).
  <info>string</info>       <strong>$table</strong>     The table.
  <info>int</info>          <strong>$scope</strong>     The scope, which orders the result set. One of <info>SQL_SCOPE_CURROW</info>,
                          <info>SQL_SCOPE_TRANSACTION</info> or <info>SQL_SCOPE_SESSION</info>.
  <info>int</info>          <strong>$nullable</strong>  Determines whether to return special columns that can have a NULL value.
                          One of <info>SQL_NO_NULLS</info> or <info>SQL_NULLABLE</info>.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  <return>SCOPE</return><return>COLUMN_NAME</return><return>DATA_TYPE</return><return>TYPE_NAME</return><return>COLUMN_SIZE</return><return>BUFFER_LENGTH</return><return>DECIMAL_DIGITS</return><return>PSEUDO_COLUMN</return>
                  Drivers can report additional columns.
                  
                  <return>SCOPE</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>DATA_TYPE</return>
                  
                  <return>TYPE_NAME</return>
                  
                  <return>COLUMN_SIZE</return>
                  
                  <return>BUFFER_LENGTH</return>
                  
                  <return>DECIMAL_DIGITS</return>
                  
                  <return>PSEUDO_COLUMN</return>
                  
                  The result set is ordered by <return>SCOPE</return>.

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


id: odbc_statistics
type: function
doc:
<comment>Description:</comment>
  Retrieve statistics about a table
  
  Get statistics about a table and its indexes.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>      The ODBC connection identifier,
                          see <strong>odbc_connect()</strong> for details.
  <info>string|null</info>  <strong>$catalog</strong>   The catalog ('qualifier' in ODBC 2 parlance).
  <info>string</info>       <strong>$schema</strong>    The schema ('owner' in ODBC 2 parlance).
  <info>string</info>       <strong>$table</strong>     The table name.
  <info>int</info>          <strong>$unique</strong>    The type of the index. One of <info>SQL_INDEX_UNIQUE</info> or <info>SQL_INDEX_ALL</info>.
  <info>int</info>          <strong>$accuracy</strong>  One of <info>SQL_ENSURE</info> or <info>SQL_QUICK</info>. The latter requests that the driver
                          retrieve the <return>CARDINALITY</return> and <return>PAGES</return> only if they are readily available from
                          the server.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>NON_UNIQUE</return><return>INDEX_QUALIFIER</return><return>INDEX_NAME</return><return>TYPE</return><return>ORDINAL_POSITION</return><return>COLUMN_NAME</return><return>ASC_OR_DESC</return><return>CARDINALITY</return><return>PAGES</return><return>FILTER_CONDITION</return>
                  Drivers can report additional columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>NON_UNIQUE</return>
                  
                  <return>INDEX_QUALIFIER</return>
                  
                  <return>INDEX_NAME</return>
                  
                  <return>TYPE</return>
                  
                  <return>ORDINAL_POSITION</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>ASC_OR_DESC</return>
                  
                  <return>CARDINALITY</return>
                  
                  <return>PAGES</return>
                  
                  <return>FILTER_CONDITION</return>
                  
                  The result set is ordered by <return>NON_UNIQUE</return>, <return>TYPE</return>, <return>INDEX_QUALIFIER</return>, <return>INDEX_NAME</return> and
                  <return>ORDINAL_POSITION</return>.

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


id: odbc_tableprivileges
type: function
doc:
<comment>Description:</comment>
  Lists tables and the privileges associated with each table
  
  Lists tables in the requested range and the privileges associated with each table.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>     The ODBC connection identifier,
                         see <strong>odbc_connect()</strong> for details.
  <info>string|null</info>  <strong>$catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance).
  <info>string</info>       <strong>$schema</strong>   The schema ('owner' in ODBC 2 parlance). This parameter accepts the
                         following search patterns:
                         <return>%</return> to match zero or more characters,
                         and <return>_</return> to match a single character.
  <info>string</info>       <strong>$table</strong>    The name. This parameter accepts the following search patterns:
                         <return>%</return> to match zero or more characters,
                         and <return>_</return> to match a single character.

<comment>Return:</comment>
  <info>resource|false</info>  An ODBC result identifier or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>GRANTOR</return><return>GRANTEE</return><return>PRIVILEGE</return><return>IS_GRANTABLE</return> Drivers can
                  report additional columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>GRANTOR</return>
                  
                  <return>GRANTEE</return>
                  
                  <return>PRIVILEGE</return>
                  
                  <return>IS_GRANTABLE</return>
                  
                  The result set is ordered by <return>TABLE_CAT</return>, <return>TABLE_SCHEM</return>, <return>TABLE_NAME</return>, <return>PRIVILEGE</return> and
                  <return>GRANTEE</return>.

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


id: odbc_tables
type: function
doc:
<comment>Description:</comment>
  Get the list of table names stored in a specific data source
  
  Lists all tables in the requested range.
  
  To support enumeration of qualifiers, owners, and table types, the following special semantics for
  the <strong>$catalog</strong>, <strong>$schema</strong>, <strong>$table</strong>, and <strong>$table_type</strong> are available:  If <strong>$catalog</strong> is a single percent
  character (%) and <strong>$schema</strong> and <strong>$table</strong> are empty strings, then the result set contains a list of
  valid qualifiers for the data source. (All columns except the TABLE_QUALIFIER column contain
  NULLs.)  If <strong>$schema</strong> is a single percent character (%) and <strong>$catalog</strong> and <strong>$table</strong> are empty strings,
  then the result set contains a list of valid owners for the data source. (All columns except the
  TABLE_OWNER column contain NULLs.)  If <strong>$table_type</strong> is a single percent character (%) and <strong>$catalog</strong>,
  <strong>$schema</strong> and <strong>$table</strong> are empty strings, then the result set contains a list of valid table types for
  the data source. (All columns except the TABLE_TYPE column contain NULLs.)
  
  If <strong>$catalog</strong> is a single percent character (%) and <strong>$schema</strong> and <strong>$table</strong> are empty strings, then the
  result set contains a list of valid qualifiers for the data source. (All columns except the
  TABLE_QUALIFIER column contain NULLs.)
  
  If <strong>$schema</strong> is a single percent character (%) and <strong>$catalog</strong> and <strong>$table</strong> are empty strings, then the
  result set contains a list of valid owners for the data source. (All columns except the
  TABLE_OWNER column contain NULLs.)
  
  If <strong>$table_type</strong> is a single percent character (%) and <strong>$catalog</strong>, <strong>$schema</strong> and <strong>$table</strong> are empty
  strings, then the result set contains a list of valid table types for the data source. (All
  columns except the TABLE_TYPE column contain NULLs.)

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>     The ODBC connection identifier,
                         see <strong>odbc_connect()</strong> for details.
  <info>string|null</info>  <strong>$catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance).
  <info>string|null</info>  <strong>$schema</strong>   The schema ('owner' in ODBC 2 parlance). This parameter accepts the
                         following search patterns:
                         <return>%</return> to match zero or more characters,
                         and <return>_</return> to match a single character.
  <info>string|null</info>  <strong>$table</strong>    The name. This parameter accepts the following search patterns:
                         <return>%</return> to match zero or more characters,
                         and <return>_</return> to match a single character.
  <info>string|null</info>  <strong>$types</strong>    If <strong>$table_type</strong> is not an empty string, it must contain a list of
                         comma-separated values for the types of interest; each value may be
                         enclosed in single quotes (<return>'</return>) or unquoted. For example, <return>'TABLE','VIEW'</return> or
                         <return>TABLE, VIEW</return>.  If the data source does not support a specified table type,
                         <strong>odbc_tables()</strong> does not return any results for that type.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier containing the information  or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>TABLE_TYPE</return><return>REMARKS</return> Drivers can report additional
                  columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>TABLE_TYPE</return>
                  
                  <return>REMARKS</return>
                  
                  The result set is ordered by <return>TABLE_TYPE</return>, <return>TABLE_CAT</return>, <return>TABLE_SCHEM</return> and <return>TABLE_NAME</return>.

<comment>See Also:</comment>
   * <strong>odbc_tableprivileges()</strong>
   * <strong>odbc_columns()</strong>
   * <strong>odbc_specialcolumns()</strong>
   * <strong>odbc_statistics()</strong>
   * <strong>odbc_procedures()</strong>


id: opcache_compile_file
type: function
doc:
<comment>Description:</comment>
  Compiles and caches a PHP script without executing it
  
  This function compiles a PHP script and adds it to the opcode cache without executing it. This can
  be used to prime the cache after a Web server restart by pre-caching files that will be included
  in later requests.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The path to the PHP script to be compiled.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$filename</strong> was compiled successfully or <info>false</info> on failure.

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


id: opcache_get_configuration
type: function
doc:
<comment>Description:</comment>
  Get configuration information about the cache
  
  This function returns configuration information about the cache instance

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of information, including ini, blacklist and version

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


id: opcache_get_status
type: function
doc:
<comment>Description:</comment>
  Get status information about the cache
  
  This function returns state information about the in-memory cache instance. It will not return any
  information about the file cache.

<comment>Param:</comment>
  <info>bool</info>  <strong>$include_scripts</strong>  Include script specific state information

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of information, optionally containing script specific state
               information, or <info>false</info> on failure.

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


id: opcache_invalidate
type: function
doc:
<comment>Description:</comment>
  Invalidates a cached script
  
  This function invalidates a particular script from the opcode cache. If <strong>$force</strong> is unset or <info>false</info>,
  the script will only be invalidated if the modification time of the script is newer than the
  cached opcodes. This function only invalidates in-memory cache and not file cache.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The path to the script being invalidated.
  <info>bool</info>    <strong>$force</strong>     If set to <info>true</info>, the script will be invalidated regardless of whether
                     invalidation is necessary.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the opcode cache for <strong>$filename</strong> was invalidated or if there was nothing to
        invalidate, or <info>false</info> if the opcode cache is disabled.

<comment>See Also:</comment>
   * <strong>opcache_compile_file()</strong>
   * <strong>opcache_reset()</strong>


id: opcache_is_script_cached
type: function
doc:
<comment>Description:</comment>
  Tells whether a script is cached in OPCache
  
  This function checks if a PHP script has been cached in OPCache. This can be used to more easily
  detect the "warming" of the cache for a particular script. This function only checks in-memory
  cache, not file cache.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The path to the PHP script to be checked.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$filename</strong> is cached in OPCache, <info>false</info> otherwise.

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


id: opcache_reset
type: function
doc:
<comment>Description:</comment>
  Resets the contents of the opcode cache
  
  This function resets the entire opcode cache. After calling <strong>opcache_reset()</strong>, all scripts will be
  reloaded and reparsed the next time they are hit. This function only resets in-memory cache, not
  the file cache.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the opcode cache was reset, or <info>false</info> if the opcode cache is disabled or the
        restart is pending or in progress (see <strong>opcache_get_status()</strong>).

<comment>See Also:</comment>
   * <strong>opcache_invalidate()</strong>
   * <strong>opcache_get_status()</strong>


id: openal_buffer_create
type: function
doc:
<comment>Description:</comment>
  Generate OpenAL buffer

<comment>Return:</comment>
  <info>resource</info>  Returns an Open AL(Buffer) resource on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openal_buffer_loadwav()</strong>
   * <strong>openal_buffer_data()</strong>


id: openal_buffer_data
type: function
doc:
<comment>Description:</comment>
  Load a buffer with data

<comment>Param:</comment>
  <info>resource</info>  <strong>$buffer</strong>  An Open AL(Buffer) resource (previously created by <strong>openal_buffer_create()</strong>).
  <info>int</info>       <strong>$format</strong>  Format of <strong>$data</strong>, one of:  <info>AL_FORMAT_MONO8</info>, <info>AL_FORMAT_MONO16</info>, <info>AL_FORMAT_STEREO8</info>
                     and <info>AL_FORMAT_STEREO16</info>
  <info>string</info>    <strong>$data</strong>    Block of binary audio data in the <strong>$format</strong> and <strong>$freq</strong> specified.
  <info>int</info>       <strong>$freq</strong>    Frequency of <strong>$data</strong> given in Hz.

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

<comment>See Also:</comment>
   * <strong>openal_buffer_loadwav()</strong>
   * <strong>openal_stream()</strong>


id: openal_buffer_destroy
type: function
doc:
<comment>Description:</comment>
  Destroys an OpenAL buffer

<comment>Param:</comment>
  <info>resource</info>  <strong>$buffer</strong>  An Open AL(Buffer) resource (previously created by <strong>openal_buffer_create()</strong>).

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

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


id: openal_buffer_get
type: function
doc:
<comment>Description:</comment>
  Retrieve an OpenAL buffer property

<comment>Param:</comment>
  <info>resource</info>  <strong>$buffer</strong>    An Open AL(Buffer) resource (previously created by <strong>openal_buffer_create()</strong>).
  <info>int</info>       <strong>$property</strong>  Specific property, one of: <info>AL_FREQUENCY</info>, <info>AL_BITS</info>, <info>AL_CHANNELS</info> and <info>AL_SIZE</info>.

<comment>Return:</comment>
  <info>int|false</info>  Returns an integer value appropriate to the <strong>$property</strong> requested or <info>false</info> on failure.

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


id: openal_buffer_loadwav
type: function
doc:
<comment>Description:</comment>
  Load a .wav file into a buffer

<comment>Param:</comment>
  <info>resource</info>  <strong>$buffer</strong>   An Open AL(Buffer) resource (previously created by <strong>openal_buffer_create()</strong>).
  <info>string</info>    <strong>$wavfile</strong>  Path to .wav file on local file system.

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

<comment>See Also:</comment>
   * <strong>openal_buffer_data()</strong>
   * <strong>openal_stream()</strong>


id: openal_context_create
type: function
doc:
<comment>Description:</comment>
  Create an audio processing context

<comment>Param:</comment>
  <info>resource</info>  <strong>$device</strong>  An Open AL(Device) resource (previously created by <strong>openal_device_open()</strong>).

<comment>Return:</comment>
  <info>resource</info>  Returns an Open AL(Context) resource on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openal_device_open()</strong>
   * <strong>openal_context_destroy()</strong>


id: openal_context_current
type: function
doc:
<comment>Description:</comment>
  Make the specified context current

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  An Open AL(Context) resource (previously created by <strong>openal_context_create()</strong>).

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

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


id: openal_context_destroy
type: function
doc:
<comment>Description:</comment>
  Destroys a context

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  An Open AL(Context) resource (previously created by <strong>openal_context_create()</strong>).

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

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


id: openal_context_process
type: function
doc:
<comment>Description:</comment>
  Process the specified context

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  An Open AL(Context) resource (previously created by <strong>openal_context_create()</strong>).

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

<comment>See Also:</comment>
   * <strong>openal_context_create()</strong>
   * <strong>openal_context_current()</strong>
   * <strong>openal_context_suspend()</strong>


id: openal_context_suspend
type: function
doc:
<comment>Description:</comment>
  Suspend the specified context

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  An Open AL(Context) resource (previously created by <strong>openal_context_create()</strong>).

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

<comment>See Also:</comment>
   * <strong>openal_context_create()</strong>
   * <strong>openal_context_current()</strong>
   * <strong>openal_context_process()</strong>


id: openal_device_close
type: function
doc:
<comment>Description:</comment>
  Close an OpenAL device

<comment>Param:</comment>
  <info>resource</info>  <strong>$device</strong>  An Open AL(Device) resource (previously created by <strong>openal_device_open()</strong>) to be
                     closed.

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

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


id: openal_device_open
type: function
doc:
<comment>Description:</comment>
  Initialize the OpenAL audio layer

<comment>Param:</comment>
  <info>string</info>  <strong>$device_desc</strong>  Open an audio device optionally specified by <strong>$device_desc</strong>. If <strong>$device_desc</strong>
                        is not specified the first available audio device will be used.

<comment>Return:</comment>
  <info>resource</info>  Returns an Open AL(Device) resource on success or  <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openal_device_close()</strong>
   * <strong>openal_context_create()</strong>


id: openal_listener_get
type: function
doc:
<comment>Description:</comment>
  Retrieve a listener property

<comment>Param:</comment>
  <info>int</info>  <strong>$property</strong>  Property to retrieve, one of: <info>AL_GAIN</info> (float), <info>AL_POSITION</info>
                  (array(float,float,float)), <info>AL_VELOCITY</info> (array(float,float,float)) and
                  <info>AL_ORIENTATION</info> (array(float,float,float)).

<comment>Return:</comment>
  <info>mixed</info>  Returns a float or array of floats (as appropriate) or <info>false</info> on failure.

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


id: openal_listener_set
type: function
doc:
<comment>Description:</comment>
  Set a listener property

<comment>Param:</comment>
  <info>int</info>    <strong>$property</strong>  Property to set, one of: <info>AL_GAIN</info> (float), <info>AL_POSITION</info>
                    (array(float,float,float)), <info>AL_VELOCITY</info> (array(float,float,float)) and
                    <info>AL_ORIENTATION</info> (array(float,float,float)).
  <info>mixed</info>  <strong>$setting</strong>   Value to set, either float, or an array of floats as appropriate.

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

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


id: openal_source_create
type: function
doc:
<comment>Description:</comment>
  Generate a source resource

<comment>Return:</comment>
  <info>resource</info>  Returns an Open AL(Source) resource on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openal_source_set()</strong>
   * <strong>openal_source_play()</strong>
   * <strong>openal_source_destroy()</strong>


id: openal_source_destroy
type: function
doc:
<comment>Description:</comment>
  Destroy a source resource

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

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

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


id: openal_source_get
type: function
doc:
<comment>Description:</comment>
  Retrieve an OpenAL source property

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>    An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).
  <info>int</info>       <strong>$property</strong>  Property to get, one of: <info>AL_SOURCE_RELATIVE</info> (int), <info>AL_SOURCE_STATE</info> (int),
                       <info>AL_PITCH</info> (float), <info>AL_GAIN</info> (float), <info>AL_MIN_GAIN</info> (float), <info>AL_MAX_GAIN</info> (float),
                       <info>AL_MAX_DISTANCE</info> (float), <info>AL_ROLLOFF_FACTOR</info> (float), <info>AL_CONE_OUTER_GAIN</info>
                       (float), <info>AL_CONE_INNER_ANGLE</info> (float), <info>AL_CONE_OUTER_ANGLE</info> (float),
                       <info>AL_REFERENCE_DISTANCE</info> (float), <info>AL_POSITION</info> (array(float,float,float)),
                       <info>AL_VELOCITY</info> (array(float,float,float)), <info>AL_DIRECTION</info>
                       (array(float,float,float)).

<comment>Return:</comment>
  <info>mixed</info>  Returns the type associated with the property being retrieved or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openal_source_create()</strong>
   * <strong>openal_source_set()</strong>
   * <strong>openal_source_play()</strong>


id: openal_source_pause
type: function
doc:
<comment>Description:</comment>
  Pause the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

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

<comment>See Also:</comment>
   * <strong>openal_source_stop()</strong>
   * <strong>openal_source_play()</strong>
   * <strong>openal_source_rewind()</strong>


id: openal_source_play
type: function
doc:
<comment>Description:</comment>
  Start playing the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

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

<comment>See Also:</comment>
   * <strong>openal_source_stop()</strong>
   * <strong>openal_source_pause()</strong>
   * <strong>openal_source_rewind()</strong>


id: openal_source_rewind
type: function
doc:
<comment>Description:</comment>
  Rewind the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

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

<comment>See Also:</comment>
   * <strong>openal_source_stop()</strong>
   * <strong>openal_source_pause()</strong>
   * <strong>openal_source_play()</strong>


id: openal_source_set
type: function
doc:
<comment>Description:</comment>
  Set source property

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>    An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).
  <info>int</info>       <strong>$property</strong>  Property to set, one of: <info>AL_BUFFER</info> (OpenAL(Source)), <info>AL_LOOPING</info> (bool),
                       <info>AL_SOURCE_RELATIVE</info> (int), <info>AL_SOURCE_STATE</info> (int), <info>AL_PITCH</info> (float), <info>AL_GAIN</info>
                       (float), <info>AL_MIN_GAIN</info> (float), <info>AL_MAX_GAIN</info> (float), <info>AL_MAX_DISTANCE</info> (float),
                       <info>AL_ROLLOFF_FACTOR</info> (float), <info>AL_CONE_OUTER_GAIN</info> (float), <info>AL_CONE_INNER_ANGLE</info>
                       (float), <info>AL_CONE_OUTER_ANGLE</info> (float), <info>AL_REFERENCE_DISTANCE</info> (float),
                       <info>AL_POSITION</info> (array(float,float,float)), <info>AL_VELOCITY</info>
                       (array(float,float,float)), <info>AL_DIRECTION</info> (array(float,float,float)).
  <info>mixed</info>     <strong>$setting</strong>   Value to assign to specified <strong>$property</strong>. Refer to the description of <strong>$property</strong>
                       for a description of the value(s) expected.

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

<comment>See Also:</comment>
   * <strong>openal_source_create()</strong>
   * <strong>openal_source_get()</strong>
   * <strong>openal_source_play()</strong>


id: openal_source_stop
type: function
doc:
<comment>Description:</comment>
  Stop playing the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

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

<comment>See Also:</comment>
   * <strong>openal_source_play()</strong>
   * <strong>openal_source_pause()</strong>
   * <strong>openal_source_rewind()</strong>


id: openal_stream
type: function
doc:
<comment>Description:</comment>
  Begin streaming on a source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).
  <info>int</info>       <strong>$format</strong>  Format of <strong>$data</strong>, one of: <info>AL_FORMAT_MONO8</info>, <info>AL_FORMAT_MONO16</info>, <info>AL_FORMAT_STEREO8</info>
                     and <info>AL_FORMAT_STEREO16</info>
  <info>int</info>       <strong>$rate</strong>    Frequency of data to stream given in Hz.

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

<comment>See Also:</comment>
   * <strong>openal_source_create()</strong>
   * <strong>fwrite()</strong>


id: opendir
type: function
doc:
<comment>Description:</comment>
  Open directory handle
  
  Opens up a directory handle to be used in subsequent <strong>closedir()</strong>, <strong>readdir()</strong>, and <strong>rewinddir()</strong> calls.

<comment>Param:</comment>
  <info>string</info>         <strong>$directory</strong>  The directory path that is to be opened
  <info>resource|null</info>  <strong>$context</strong>    For a description of the <strong>$context</strong> parameter,  refer to the streams
                             section of the manual.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a directory handle <info>resource</info> on success, or <info>false</info> on failure

<comment>See Also:</comment>
   * <strong>is_dir()</strong>
   * <strong>readdir()</strong>
   * <strong>dir()</strong>


id: openlog
type: function
doc:
<comment>Description:</comment>
  Open connection to system logger
  
  <strong>openlog()</strong> opens a connection to the system logger for a program.
  
  The use of <strong>openlog()</strong> is optional. It will automatically be called by <strong>syslog()</strong> if necessary, in
  which case <strong>$prefix</strong> will default to <info>false</info>.

<comment>Param:</comment>
  <info>string</info>  <strong>$prefix</strong>    The string <strong>$prefix</strong> is added to each message.
  <info>int</info>     <strong>$flags</strong>     The <strong>$flags</strong> argument is used to indicate what logging options will be used when
                     generating a log message. <strong>openlog()</strong> OptionsConstantDescription<info>LOG_CONS</info> if there
                     is an error while sending data to the system logger, write directly to the
                     system console <info>LOG_NDELAY</info> open the connection to the logger immediately
                     <info>LOG_ODELAY</info> (default) delay opening the connection until the first message is
                     logged <info>LOG_PERROR</info>print log message also to standard error<info>LOG_PID</info>include PID
                     with each message You can use one or more of these options. When using multiple
                     options you need to <return>OR</return> them, i.e. to open the connection immediately, write to
                     the console and include the PID in each message, you will use: <return>LOG_CONS |
                     LOG_NDELAY | LOG_PID</return>
  <info>int</info>     <strong>$facility</strong>  The <strong>$facility</strong> argument is used to specify what type of program is logging the
                     message. This allows you to specify (in your machine's syslog configuration)
                     how messages coming from different facilities will be handled. <strong>openlog()</strong>
                     FacilitiesConstantDescription<info>LOG_AUTH</info> security/authorization messages (use
                     <info>LOG_AUTHPRIV</info> instead in systems where that constant is defined)
                     <info>LOG_AUTHPRIV</info>security/authorization messages (private)<info>LOG_CRON</info>clock daemon (cron
                     and at)<info>LOG_DAEMON</info>other system daemons<info>LOG_KERN</info>kernel messages<info>LOG_LOCAL0</info> ...
                     <info>LOG_LOCAL7</info>reserved for local use, these are not available in Windows<info>LOG_LPR</info>line
                     printer subsystem<info>LOG_MAIL</info>mail subsystem<info>LOG_NEWS</info>USENET news
                     subsystem<info>LOG_SYSLOG</info>messages generated internally by syslogd<info>LOG_USER</info>generic
                     user-level messages<info>LOG_UUCP</info>UUCP subsystem
                     
                     <info>LOG_USER</info> is the only valid log type under Windows operating systems

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

<comment>See Also:</comment>
   * <strong>syslog()</strong>
   * <strong>closelog()</strong>


id: openssl_cipher_iv_length
type: function
doc:
<comment>Description:</comment>
  Gets the cipher iv length
  
  Gets the cipher initialization vector (iv) length.

<comment>Param:</comment>
  <info>string</info>  <strong>$cipher_algo</strong>  The cipher method, see <strong>openssl_get_cipher_methods()</strong> for a list of potential
                        values.

<comment>Return:</comment>
  <info>int|false</info>  Returns the cipher length on success, or <info>false</info> on failure.


id: openssl_cipher_key_length
type: function
doc:
<comment>Description:</comment>
  Gets the cipher key length
  
  Gets the cipher key length.

<comment>Param:</comment>
  <info>string</info>  <strong>$cipher_algo</strong>  The cipher method, see <strong>openssl_get_cipher_methods()</strong> for a list of potential
                        values.

<comment>Return:</comment>
  <info>int|false</info>  Returns the cipher length on success,  or <info>false</info> on failure.


id: openssl_cms_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypt a CMS message
  
  Decrypts a CMS message.

<comment>Param:</comment>
  <info>string</info>                                                     <strong>$input_filename</strong>   The name of a file
                                                                               containing encrypted
                                                                               content.
  <info>string</info>                                                     <strong>$output_filename</strong>  The name of the file
                                                                               to deposit the
                                                                               decrypted content.
  <info>OpenSSLCertificate|string</info>                                  <strong>$certificate</strong>      The name of the file
                                                                               containing a
                                                                               certificate of the
                                                                               recipient.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null</info>  <strong>$private_key</strong>      The name of the file
                                                                               containing a PKCS#8
                                                                               key.
  <info>int</info>                                                        <strong>$encoding</strong>         The encoding of the
                                                                               input file. One of
                                                                               <info>OPENSSL_ENCODING_SMIME</info>,
                                                                               <info>OPENSSL_ENCODING_DER</info>
                                                                               or
                                                                               <info>OPENSSL_ENCODING_PEM</info>.

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


id: openssl_cms_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypt a CMS message
  
  This function encrypts content to one or more recipients, based on the certificates that are
  passed to it.

<comment>Param:</comment>
  <info>string</info>                           <strong>$input_filename</strong>   The file to be encrypted.
  <info>string</info>                           <strong>$output_filename</strong>  The output file.
  <info>OpenSSLCertificate|array|string</info>  <strong>$certificate</strong>      Recipients to encrypt to.
  <info>array|null</info>                       <strong>$headers</strong>          Headers to include when S/MIME is used.
  <info>int</info>                              <strong>$flags</strong>            Flags to be passed to CMS_sign.
  <info>int</info>                              <strong>$encoding</strong>         An encoding to output. One of
                                                     <info>OPENSSL_ENCODING_SMIME</info>, <info>OPENSSL_ENCODING_DER</info> or
                                                     <info>OPENSSL_ENCODING_PEM</info>.
  <info>int</info>                              <strong>$cipher_algo</strong>      A cypher to use.

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


id: openssl_cms_read
type: function
doc:
<comment>Description:</comment>
  Export the CMS file to an array of PEM certificates
  
  Performs the exact analog to <strong>openssl_pkcs7_read()</strong>.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$input_filename</strong>  
  <info>array</info>   <strong>$certificates</strong>    

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


id: openssl_cms_sign
type: function
doc:
<comment>Description:</comment>
  Sign a file
  
  This function signs a file with an X.509 certificate and key.

<comment>Param:</comment>
  <info>string</info>                                                <strong>$input_filename</strong>                   The name
                                                                                          of the
                                                                                          file to be
                                                                                          signed.
  <info>string</info>                                                <strong>$output_filename</strong>                  The name
                                                                                          of the
                                                                                          file to
                                                                                          deposit
                                                                                          the
                                                                                          results.
  <info>OpenSSLCertificate|string</info>                             <strong>$certificate</strong>                      The
                                                                                          signing
                                                                                          certificate.
                                                                                          See
                                                                                          Key/Certificate
                                                                                          parameters
                                                                                          for a list
                                                                                          of valid
                                                                                          values.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>                      The key
                                                                                          associated
                                                                                          with
                                                                                          <strong>$certificate</strong>.
                                                                                          See
                                                                                          Key/Certificate
                                                                                          parameters
                                                                                          for a list
                                                                                          of valid
                                                                                          values.
  <info>array|null</info>                                            <strong>$headers</strong>                          An array
                                                                                          of headers
                                                                                          to be
                                                                                          included
                                                                                          in S/MIME
                                                                                          output.
  <info>int</info>                                                   <strong>$flags</strong>                            Flags to
                                                                                          be passed
                                                                                          to
                                                                                          <strong>cms_sign()</strong>.
  <info>int</info>                                                   <strong>$encoding</strong>                         The
                                                                                          encoding
                                                                                          of the
                                                                                          output
                                                                                          file. One
                                                                                          of
                                                                                          <info>OPENSSL_ENCODING_SMIME</info>,
                                                                                          <info>OPENSSL_ENCODING_DER</info>
                                                                                          or
                                                                                          <info>OPENSSL_ENCODING_PEM</info>.
  <info>string|null</info>                                           <strong>$untrusted_certificates_filename</strong>  
                                                                                          Intermediate
                                                                                          certificates
                                                                                          to be
                                                                                          included
                                                                                          in the
                                                                                          signature.

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


id: openssl_cms_verify
type: function
doc:
<comment>Description:</comment>
  Verify a CMS signature
  
  This function verifies a CMS signature, either attached or detached, with the specified encoding.

<comment>Param:</comment>
  <info>string</info>       <strong>$input_filename</strong>                   The input file.
  <info>int</info>          <strong>$flags</strong>                            Flags to pass to <strong>cms_verify()</strong>.
  <info>string|null</info>  <strong>$certificates</strong>                     A file with the signer certificate and optionally
                                                 intermediate certificates.
  <info>array</info>        <strong>$ca_info</strong>                          An array containing self-signed certificate
                                                 authority certificates.
  <info>string|null</info>  <strong>$untrusted_certificates_filename</strong>  A file containing additional intermediate
                                                 certificates.
  <info>string|null</info>  <strong>$content</strong>                          A file pointing to the content when signatures are
                                                 detached.
  <info>string|null</info>  <strong>$pk7</strong>                              
  <info>string|null</info>  <strong>$sigfile</strong>                          A file to save the signature to.
  <info>int</info>          <strong>$encoding</strong>                         The encoding of the input file. One of
                                                 <info>OPENSSL_ENCODING_SMIME</info>, <info>OPENSSL_ENCODING_DER</info> or
                                                 <info>OPENSSL_ENCODING_PEM</info>.

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


id: openssl_csr_export
type: function
doc:
<comment>Description:</comment>
  Exports a CSR as a string
  
  <strong>openssl_csr_export()</strong> takes the Certificate Signing Request represented by <strong>$csr</strong> and stores it in
  PEM format in <strong>$output</strong>, which is passed by reference.

<comment>Param:</comment>
  <info>OpenSSLCertificateSigningRequest|string</info>  <strong>$csr</strong>      See CSR parameters for a list of valid values.
  <info>string</info>                                   <strong>$output</strong>   on success, this string will contain the PEM
                                                     encoded CSR
  <info>bool</info>                                     <strong>$no_text</strong>  The optional parameter <strong>$notext</strong> affects the
                                                     verbosity of the output; if it is <info>false</info>, then
                                                     additional human-readable information is
                                                     included in the output. The default value of
                                                     <strong>$notext</strong> is <info>true</info>.

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

<comment>See Also:</comment>
   * <strong>openssl_csr_export_to_file()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_csr_export_to_file
type: function
doc:
<comment>Description:</comment>
  Exports a CSR to a file
  
  <strong>openssl_csr_export_to_file()</strong> takes the Certificate Signing Request represented by <strong>$csr</strong> and saves
  it in PEM format into the file named by <strong>$output_filename</strong>.

<comment>Param:</comment>
  <info>OpenSSLCertificateSigningRequest|string</info>  <strong>$csr</strong>              See CSR parameters for a list of valid
                                                             values.
  <info>string</info>                                   <strong>$output_filename</strong>  Path to the output file.
  <info>bool</info>                                     <strong>$no_text</strong>          The optional parameter <strong>$notext</strong> affects
                                                             the verbosity of the output; if it is
                                                             <info>false</info>, then additional human-readable
                                                             information is included in the output.
                                                             The default value of <strong>$notext</strong> is <info>true</info>.

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

<comment>See Also:</comment>
   * <strong>openssl_csr_export()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_csr_get_public_key
type: function
doc:
<comment>Description:</comment>
  Returns the public key of a CSR
  
  <strong>openssl_csr_get_public_key()</strong> extracts the public key  from <strong>$csr</strong> and prepares it for use by other
  functions.

<comment>Param:</comment>
  <info>OpenSSLCertificateSigningRequest|string</info>  <strong>$csr</strong>          See CSR parameters for a list of valid
                                                         values.
  <info>bool</info>                                     <strong>$short_names</strong>  This parameter is ignored

<comment>Return:</comment>
  <info>OpenSSLAsymmetricKey|false</info>  Returns an <class>OpenSSLAsymmetricKey</class> on success, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>openssl_csr_get_subject()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_pkey_get_details()</strong>
   * <strong>openssl_pkey_export_to_file()</strong>
   * <strong>openssl_pkey_export()</strong>


id: openssl_csr_get_subject
type: function
doc:
<comment>Description:</comment>
  Returns the subject of a CSR
  
  <strong>openssl_csr_get_subject()</strong> returns subject distinguished name information encoded in the <strong>$csr</strong>
  including fields commonName (CN), organizationName (O), countryName (C) etc.

<comment>Param:</comment>
  <info>OpenSSLCertificateSigningRequest|string</info>  <strong>$csr</strong>          See CSR parameters for a list of valid
                                                         values.
  <info>bool</info>                                     <strong>$short_names</strong>  <strong>$shortnames</strong> controls how the data is
                                                         indexed in the array - if <strong>$shortnames</strong> is
                                                         <info>true</info> (the default) then fields will be
                                                         indexed with the short name form,
                                                         otherwise, the long name form will be used
                                                         - e.g.: CN is the shortname form of
                                                         commonName.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array with subject description,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_get_public_key()</strong>
   * <strong>openssl_x509_parse()</strong>


id: openssl_csr_new
type: function
doc:
<comment>Description:</comment>
  Generates a CSR
  
  <strong>openssl_csr_new()</strong> generates a new CSR based on the information provided by <strong>$distinguished_names</strong>.
  
  You need to have a valid openssl.cnf installed for this function to operate correctly. See the
  notes under the installation section for more information.

<comment>Param:</comment>
  <info>array</info>                 <strong>$distinguished_names</strong>  The Distinguished Name or subject fields to be used in
                                              the certificate.
  <info>OpenSSLAsymmetricKey</info>  <strong>$private_key</strong>          <strong>$private_key</strong> should be set to a private key that was
                                              previously generated by <strong>openssl_pkey_new()</strong> (or
                                              otherwise obtained from the other openssl_pkey family
                                              of functions). The corresponding public portion of the
                                              key will be used to sign the CSR.
  <info>array|null</info>            <strong>$options</strong>              By default, the information in your system
                                              <return>openssl.conf</return> is used to initialize the request; you
                                              can specify a configuration file section by setting
                                              the <return>config_section_section</return> key of <strong>$options</strong>.  You can
                                              also specify an alternative openssl configuration file
                                              by setting the value of the <return>config</return> key to the path of
                                              the file you want to use. The following keys, if
                                              present in <strong>$options</strong> behave as their equivalents in the
                                              <return>openssl.conf</return>, as listed in the table below.
                                              Configuration overrides<strong>$options</strong> keytype<return>openssl.conf</return>
                                              equivalentdescriptiondigest_alg<info>string</info>default_mdDigest
                                              method or signature hash, usually one of
                                              <strong>openssl_get_md_methods()</strong>x509_extensions<info>string</info>x509_extensionsSelects
                                              which extensions should be used when creating an x509
                                              certificatereq_extensions<info>string</info>req_extensionsSelects
                                              which extensions should be used when creating a
                                              CSRprivate_key_bits<info>int</info>default_bitsSpecifies how many
                                              bits should be used to generate a private
                                              keyprivate_key_type<info>int</info>noneSpecifies the type of
                                              private key to create.  This can be one of
                                              <info>OPENSSL_KEYTYPE_DSA</info>, <info>OPENSSL_KEYTYPE_DH</info>,
                                              <info>OPENSSL_KEYTYPE_RSA</info> or <info>OPENSSL_KEYTYPE_EC</info>. The default
                                              value is <info>OPENSSL_KEYTYPE_RSA</info>.
                                              encrypt_key<info>bool</info>encrypt_keyShould an exported key (with
                                              passphrase) be encrypted?encrypt_key_cipher<info>int</info>none One
                                              of cipher constants. curve_name<info>string</info>none One of
                                              <strong>openssl_get_curve_names()</strong>. config<info>string</info>N/A Path to
                                              your own alternative openssl.conf file.
  <info>array|null</info>            <strong>$extra_attributes</strong>     <strong>$extra_attributes</strong> is used to specify additional
                                              configuration options for the CSR.  Both
                                              <strong>$distinguished_names</strong> and <strong>$extra_attributes</strong> are
                                              associative arrays whose keys are converted to OIDs
                                              and applied to the relevant part of the request.

<comment>Return:</comment>
  <info>OpenSSLCertificateSigningRequest|false</info>  Returns the CSR or <info>false</info> on failure.

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


id: openssl_csr_sign
type: function
doc:
<comment>Description:</comment>
  Sign a CSR with another certificate (or itself) and generate a certificate
  
  <strong>openssl_csr_sign()</strong> generates an x509 certificate from the given CSR.
  
  You need to have a valid openssl.cnf installed for this function to operate correctly. See the
  notes under the installation section for more information.

<comment>Param:</comment>
  <info>OpenSSLCertificateSigningRequest|string</info>               <strong>$csr</strong>             A CSR previously generated
                                                                         by <strong>openssl_csr_new()</strong>. It
                                                                         can also be the path to a
                                                                         PEM encoded CSR when
                                                                         specified as
                                                                         file://path/to/csr or an
                                                                         exported string generated
                                                                         by <strong>openssl_csr_export()</strong>.
  <info>OpenSSLCertificate|string|null</info>                        <strong>$ca_certificate</strong>  The generated certificate
                                                                         will be signed by
                                                                         <strong>$ca_certificate</strong>. If
                                                                         <strong>$ca_certificate</strong> is <info>null</info>,
                                                                         the generated certificate
                                                                         will be a self-signed
                                                                         certificate.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>     <strong>$private_key</strong> is the private
                                                                         key that corresponds to
                                                                         <strong>$ca_certificate</strong>.
  <info>int</info>                                                   <strong>$days</strong>            <strong>$days</strong> specifies the length
                                                                         of time for which the
                                                                         generated certificate will
                                                                         be valid, in days.
  <info>array|null</info>                                            <strong>$options</strong>         You can finetune the CSR
                                                                         signing by <strong>$options</strong>. See
                                                                         <strong>openssl_csr_new()</strong> for more
                                                                         information about <strong>$options</strong>.
  <info>int</info>                                                   <strong>$serial</strong>          An optional the serial
                                                                         number of issued
                                                                         certificate. If not
                                                                         specified it will default
                                                                         to 0.

<comment>Return:</comment>
  <info>OpenSSLCertificate|false</info>  Returns an <class>OpenSSLCertificate</class> on success, <info>false</info> on failure.


id: openssl_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypts data
  
  Takes a raw or base64 encoded string and decrypts it using a given method and key.

<comment>Param:</comment>
  <info>string</info>       <strong>$data</strong>         The encrypted message to be decrypted.
  <info>string</info>       <strong>$cipher_algo</strong>  The cipher method. For a list of available cipher methods, use
                             <strong>openssl_get_cipher_methods()</strong>.
  <info>string</info>       <strong>$passphrase</strong>   The key.
  <info>int</info>          <strong>$options</strong>      <strong>$options</strong> can be one of <info>OPENSSL_RAW_DATA</info>, <info>OPENSSL_ZERO_PADDING</info>.
  <info>string</info>       <strong>$iv</strong>           A non-NULL Initialization Vector.
  <info>string|null</info>  <strong>$tag</strong>          The authentication tag in AEAD cipher mode. If it is incorrect, the
                             authentication fails and the function returns <info>false</info>.
                             
                             The length of the <strong>$tag</strong> is not checked by the function. It is the
                             caller's responsibility to ensure that the length of the tag matches
                             the length of the tag retrieved when <strong>openssl_encrypt()</strong> has been called.
                             Otherwise the decryption may succeed if the given tag only matches the
                             start of the proper tag.
  <info>string</info>       <strong>$aad</strong>          Additional authenticated data.

<comment>Return:</comment>
  <info>string|false</info>  The decrypted string on success or <info>false</info> on failure.

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


id: openssl_dh_compute_key
type: function
doc:
<comment>Description:</comment>
  Computes shared secret for public value of remote DH public key and local DH key
  
  The shared secret returned by <strong>openssl_dh_compute_key()</strong> is often used as an encryption key to
  secretly communicate with a remote party. This is known as the Diffie-Hellman key exchange.
  
  ECDH is only supported as of PHP 8.1.0 and OpenSSL 3.0.0.

<comment>Param:</comment>
  <info>string</info>                <strong>$public_key</strong>   DH Public key of the remote party.
  <info>OpenSSLAsymmetricKey</info>  <strong>$private_key</strong>  A local DH private key, corresponding to the public key to be
                                      shared with the remote party.

<comment>Return:</comment>
  <info>string|false</info>  Returns shared secret on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openssl_pkey_new()</strong>
   * <strong>openssl_pkey_get_details()</strong>
   * <strong>openssl_pkey_get_private()</strong>
   * <strong>openssl_pkey_get_public()</strong>


id: openssl_digest
type: function
doc:
<comment>Description:</comment>
  Computes a digest
  
  Computes a digest hash value for the given data using a given method, and returns a raw or binhex
  encoded string.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>         The data.
  <info>string</info>  <strong>$digest_algo</strong>  The digest method to use, e.g. "sha256", see <strong>openssl_get_md_methods()</strong> for a
                        list of available digest methods.
  <info>bool</info>    <strong>$binary</strong>       Setting to <info>true</info> will return as raw output data, otherwise the return value
                        is binhex encoded.

<comment>Return:</comment>
  <info>string|false</info>  Returns the digested hash value on success or <info>false</info> on failure.

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


id: openssl_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypts data
  
  Encrypts given data with given method and key, returns a raw or base64 encoded string

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>         The plaintext message data to be encrypted.
  <info>string</info>  <strong>$cipher_algo</strong>  The cipher method. For a list of available cipher methods, use
                        <strong>openssl_get_cipher_methods()</strong>.
  <info>string</info>  <strong>$passphrase</strong>   The passphrase. If the passphrase is shorter than expected, it is silently
                        padded with <return>NUL</return> characters; if the passphrase is longer than expected, it is
                        silently truncated.
  <info>int</info>     <strong>$options</strong>      <strong>$options</strong> is a bitwise disjunction of the flags <info>OPENSSL_RAW_DATA</info> and
                        <info>OPENSSL_ZERO_PADDING</info>.
  <info>string</info>  <strong>$iv</strong>           A non-NULL Initialization Vector.
  <info>string</info>  <strong>$tag</strong>          The authentication tag passed by reference when using AEAD cipher mode (GCM
                        or CCM).
  <info>string</info>  <strong>$aad</strong>          Additional authenticated data.
  <info>int</info>     <strong>$tag_length</strong>   The length of the authentication <strong>$tag</strong>. Its value can be between 4 and 16 for
                        GCM mode.

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

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


id: openssl_error_string
type: function
doc:
<comment>Description:</comment>
  Return openSSL error message
  
  <strong>openssl_error_string()</strong> returns the last error from the openSSL library.  Error messages are
  queued, so this function should be called multiple times to collect all of the information. The
  last error will be the most recent one.

<comment>Return:</comment>
  <info>string|false</info>  Returns an error message string, or <info>false</info> if there are no more error messages to
                return.


id: openssl_free_key
type: function
doc:
<comment>Description:</comment>
  Free key resource
  
  <strong>openssl_free_key()</strong> frees the key associated with the specified <strong>$key</strong> from memory.

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey</info>  <strong>$key</strong>  

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


id: openssl_get_cert_locations
type: function
doc:
<comment>Description:</comment>
  Retrieve the available certificate locations
  
  <strong>openssl_get_cert_locations()</strong> returns an array with information about the available certificate
  locations that will be searched for SSL certificates.

<comment>Return:</comment>
  <info>array</info>  Returns an array with the available certificate locations.


id: openssl_get_cipher_methods
type: function
doc:
<comment>Description:</comment>
  Gets available cipher methods
  
  Gets a list of available cipher methods.

<comment>Param:</comment>
  <info>bool</info>  <strong>$aliases</strong>  Set to <info>true</info> if cipher aliases should be included within the returned <info>array</info>.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> of available cipher methods. Note that prior to OpenSSL 1.1.1, the cipher methods
         have been returned in upper case and lower case spelling; as of OpenSSL 1.1.1 only the
         lower case variants are returned.

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


id: openssl_get_curve_names
type: function
doc:
<comment>Description:</comment>
  Gets list of available curve names for ECC
  
  Gets the list of available curve names for use in Elliptic curve  cryptography (ECC) for
  public/private key operations. The two most widely  standardized/supported curves are prime256v1
  (NIST P-256) and secp384r1 (NIST P-384). Approximate Equivalancies of AES, RSA, DSA and ECC
  KeysizesAES Symmetric Keysize (Bits)RSA and DSA Keysize (Bits)ECC Keysize
  (Bits)80102416011220482241283072256192768038425615360512 NIST  recommends using ECC curves with at
  least 256 bits.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> of available curve names,  or <info>false</info> on failure.


id: openssl_get_md_methods
type: function
doc:
<comment>Description:</comment>
  Gets available digest methods
  
  Gets a list of available digest methods.

<comment>Param:</comment>
  <info>bool</info>  <strong>$aliases</strong>  Set to <info>true</info> if digest aliases should be included within the returned <info>array</info>.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> of available digest methods.

<comment>See Also:</comment>
   * <strong>openssl_digest()</strong>
   * <strong>openssl_get_cipher_methods()</strong>


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


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


id: openssl_open
type: function
doc:
<comment>Description:</comment>
  Open sealed data
  
  <strong>openssl_open()</strong> opens (decrypts) <strong>$data</strong> using the private key associated with the key identifier
  <strong>$private_key</strong> and the envelope key <strong>$encrypted_key</strong>, and fills <strong>$output</strong> with the decrypted data. The
  envelope key is generated when the data are sealed and can only be used by one specific private
  key. See <strong>openssl_seal()</strong> for more information.

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>           
  <info>string</info>                                                <strong>$output</strong>         If the call is successful
                                                                        the opened data is returned
                                                                        in this parameter.
  <info>string</info>                                                <strong>$encrypted_key</strong>  
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>    
  <info>string</info>                                                <strong>$cipher_algo</strong>    The cipher method.  The
                                                                        default value (<return>'RC4'</return>) is
                                                                        considered insecure. It is
                                                                        strongly recommended to
                                                                        explicitly specify a secure
                                                                        cipher method.
                                                                        
                                                                        The default value (<return>'RC4'</return>) is
                                                                        considered insecure. It is
                                                                        strongly recommended to
                                                                        explicitly specify a secure
                                                                        cipher method.
  <info>string|null</info>                                           <strong>$iv</strong>             The initialization vector.

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

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


id: openssl_pbkdf2
type: function
doc:
<comment>Description:</comment>
  Generates a PKCS5 v2 PBKDF2 string
  
  <strong>openssl_pbkdf2()</strong> computes PBKDF2 (Password-Based Key Derivation Function 2), a key derivation
  function defined in PKCS5 v2.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>     Password from which the derived key is generated.
  <info>string</info>  <strong>$salt</strong>         PBKDF2 recommends a crytographic salt of at least 64 bits (8 bytes).
  <info>int</info>     <strong>$key_length</strong>   Length of desired output key.
  <info>int</info>     <strong>$iterations</strong>   The number of iterations desired. NIST  recommends at least 10,000.
  <info>string</info>  <strong>$digest_algo</strong>  Optional hash or digest algorithm from <strong>openssl_get_md_methods()</strong>.  Defaults
                        to SHA-1.

<comment>Return:</comment>
  <info>string|false</info>  Returns raw binary string or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>hash_pbkdf2()</strong>
   * <strong>openssl_get_md_methods()</strong>


id: openssl_pkcs12_export
type: function
doc:
<comment>Description:</comment>
  Exports a PKCS#12 Compatible Certificate Store File to variable
  
  <strong>openssl_pkcs12_export()</strong> stores <strong>$certificate</strong> into a string named by <strong>$output</strong> in a PKCS#12 file
  format.

<comment>Param:</comment>
  <info></info>                                                      <strong>$x509</strong>         See Key/Certificate parameters
                                                                      for a list of valid values.
  <info>string</info>                                                <strong>$output</strong>       On success, this will hold the
                                                                      PKCS#12.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>  Private key component of
                                                                      PKCS#12 file. See
                                                                      Public/Private Key parameters
                                                                      for a list of valid values.
  <info>string</info>                                                <strong>$passphrase</strong>   Encryption password for
                                                                      unlocking the PKCS#12 file.
  <info>array</info>                                                 <strong>$options</strong>      Optional array, other keys
                                                                      will be ignored.
                                                                      KeyDescription<return>"extracerts"</return>array
                                                                      of extra certificates or a
                                                                      single certificate to be
                                                                      included in the PKCS#12
                                                                      file.<return>"friendly_name"</return>string to
                                                                      be used for the supplied
                                                                      certificate and key

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


id: openssl_pkcs12_export_to_file
type: function
doc:
<comment>Description:</comment>
  Exports a PKCS#12 Compatible Certificate Store File
  
  <strong>openssl_pkcs12_export_to_file()</strong> stores <strong>$certificate</strong> into a file named by <strong>$output_filename</strong> in a
  PKCS#12 file format.

<comment>Param:</comment>
  <info></info>                                                      <strong>$x509</strong>             See Key/Certificate
                                                                          parameters for a list of
                                                                          valid values.
  <info>string</info>                                                <strong>$output_filename</strong>  Path to the output file.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>      Private key component of
                                                                          PKCS#12 file. See
                                                                          Public/Private Key
                                                                          parameters for a list of
                                                                          valid values.
  <info>string</info>                                                <strong>$passphrase</strong>       Encryption password for
                                                                          unlocking the PKCS#12
                                                                          file.
  <info>array</info>                                                 <strong>$options</strong>          Optional array, other keys
                                                                          will be ignored.
                                                                          KeyDescription<return>"extracerts"</return>array
                                                                          of extra certificates or a
                                                                          single certificate to be
                                                                          included in the PKCS#12
                                                                          file.<return>"friendly_name"</return>string
                                                                          to be used for the
                                                                          supplied certificate and
                                                                          key

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


id: openssl_pkcs12_read
type: function
doc:
<comment>Description:</comment>
  Parse a PKCS#12 Certificate Store into an array
  
  <strong>openssl_pkcs12_read()</strong> parses the PKCS#12 certificate store supplied by <strong>$pkcs12</strong> into a array named
  <strong>$certificates</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$pkcs12</strong>        The certificate store contents, not its file name.
  <info>array</info>   <strong>$certificates</strong>  On success, this will hold the Certificate Store Data.
  <info>string</info>  <strong>$passphrase</strong>    Encryption password for unlocking the PKCS#12 file.

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


id: openssl_pkcs7_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypts an S/MIME encrypted message
  
  Decrypts the S/MIME encrypted message contained in the file specified by <strong>$input_filename</strong> using the
  certificate and its associated private key specified by <strong>$certificate</strong> and <strong>$private_key</strong>.

<comment>Param:</comment>
  <info>string</info>                                                     <strong>$input_filename</strong>   
  <info>string</info>                                                     <strong>$output_filename</strong>  The decrypted message
                                                                               is written to the
                                                                               file specified by
                                                                               <strong>$output_filename</strong>.
  <info>OpenSSLCertificate|string</info>                                  <strong>$certificate</strong>      
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null</info>  <strong>$private_key</strong>      

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


id: openssl_pkcs7_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypt an S/MIME message
  
  <strong>openssl_pkcs7_encrypt()</strong> takes the contents of the file named <strong>$input_filename</strong> and encrypts them
  using an RC2 40-bit cipher so that they can only be read by the intended recipients specified by
  <strong>$certificate</strong>.

<comment>Param:</comment>
  <info>string</info>                           <strong>$input_filename</strong>   
  <info>string</info>                           <strong>$output_filename</strong>  
  <info>OpenSSLCertificate|array|string</info>  <strong>$certificate</strong>      Either a lone X.509 certificate, or an array of
                                                     X.509 certificates.
  <info>array|null</info>                       <strong>$headers</strong>          <strong>$headers</strong> is an array of headers that will be
                                                     prepended to the data after it has been
                                                     encrypted.
                                                     
                                                     <strong>$headers</strong> can be either an associative array
                                                     keyed by header name, or an indexed array,
                                                     where each element contains a single header
                                                     line.
  <info>int</info>                              <strong>$flags</strong>            <strong>$flags</strong> can be used to specify options that
                                                     affect the encoding process - see PKCS7
                                                     constants.
  <info>int</info>                              <strong>$cipher_algo</strong>      One of cipher constants.

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


id: openssl_pkcs7_read
type: function
doc:
<comment>Description:</comment>
  Export the PKCS7 file to an array of PEM certificates
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>          The string of data you wish to parse (p7b format).
  <info>array</info>   <strong>$certificates</strong>  The array of PEM certificates from the p7b input data.

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

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


id: openssl_pkcs7_sign
type: function
doc:
<comment>Description:</comment>
  Sign an S/MIME message
  
  <strong>openssl_pkcs7_sign()</strong> takes the contents of the file named <strong>$input_filename</strong> and signs them using the
  certificate and its matching private key specified by <strong>$certificate</strong> and <strong>$private_key</strong> parameters.

<comment>Param:</comment>
  <info>string</info>                                                <strong>$input_filename</strong>                   The input
                                                                                          file you
                                                                                          are
                                                                                          intending
                                                                                          to
                                                                                          digitally
                                                                                          sign.
  <info>string</info>                                                <strong>$output_filename</strong>                  The file
                                                                                          which the
                                                                                          digital
                                                                                          signature
                                                                                          will be
                                                                                          written
                                                                                          to.
  <info>OpenSSLCertificate|string</info>                             <strong>$certificate</strong>                      The X.509
                                                                                          certificate
                                                                                          used to
                                                                                          digitally
                                                                                          sign
                                                                                          <strong>$input_filename</strong>.
                                                                                          See
                                                                                          Key/Certificate
                                                                                          parameters
                                                                                          for a list
                                                                                          of valid
                                                                                          values.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>                      
                                                                                          <strong>$private_key</strong>
                                                                                          is the
                                                                                          private
                                                                                          key
                                                                                          corresponding
                                                                                          to
                                                                                          <strong>$certificate</strong>.
                                                                                          See
                                                                                          Public/Private
                                                                                          Key
                                                                                          parameters
                                                                                          for a list
                                                                                          of valid
                                                                                          values.
  <info>array|null</info>                                            <strong>$headers</strong>                          <strong>$headers</strong>
                                                                                          is an
                                                                                          array of
                                                                                          headers
                                                                                          that will
                                                                                          be
                                                                                          prepended
                                                                                          to the
                                                                                          data after
                                                                                          it has
                                                                                          been
                                                                                          signed
                                                                                          (see
                                                                                          <strong>openssl_pkcs7_encrypt()</strong>
                                                                                          for more
                                                                                          information
                                                                                          about the
                                                                                          format of
                                                                                          this
                                                                                          parameter).
  <info>int</info>                                                   <strong>$flags</strong>                            <strong>$flags</strong> can
                                                                                          be used to
                                                                                          alter the
                                                                                          output -
                                                                                          see PKCS7
                                                                                          constants.
  <info>string|null</info>                                           <strong>$untrusted_certificates_filename</strong>  
                                                                                          <strong>$untrusted_certificates_filename</strong>
                                                                                          specifies
                                                                                          the name
                                                                                          of a file
                                                                                          containing
                                                                                          a bunch of
                                                                                          extra
                                                                                          certificates
                                                                                          to include
                                                                                          in the
                                                                                          signature
                                                                                          which can
                                                                                          for
                                                                                          example be
                                                                                          used to
                                                                                          help the
                                                                                          recipient
                                                                                          to verify
                                                                                          the
                                                                                          certificate
                                                                                          that you
                                                                                          used.

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


id: openssl_pkcs7_verify
type: function
doc:
<comment>Description:</comment>
  Verifies the signature of an S/MIME signed message
  
  <strong>openssl_pkcs7_verify()</strong> reads the S/MIME message contained in the given file and examines the
  digital signature.

<comment>Param:</comment>
  <info>string</info>       <strong>$input_filename</strong>                   Path to the message.
  <info>int</info>          <strong>$flags</strong>                            <strong>$flags</strong> can be used to affect how the signature is
                                                 verified - see PKCS7 constants for more
                                                 information.
  <info>string|null</info>  <strong>$signers_certificates_filename</strong>    If the <strong>$signers_certificates_filename</strong> is specified,
                                                 it should be a string holding the name of a file
                                                 into which the certificates of the persons that
                                                 signed the messages will be stored in PEM format.
  <info>array</info>        <strong>$ca_info</strong>                          If the <strong>$ca_info</strong> is specified, it should hold
                                                 information about the trusted CA certificates to
                                                 use in the verification process - see certificate
                                                 verification for more information about this
                                                 parameter.
  <info>string|null</info>  <strong>$untrusted_certificates_filename</strong>  If the <strong>$untrusted_certificates_filename</strong> is
                                                 specified, it is the filename of a file containing
                                                 a bunch of certificates to use as untrusted CAs.
  <info>string|null</info>  <strong>$content</strong>                          You can specify a filename with <strong>$content</strong> that will
                                                 be filled with the verified data, but with the
                                                 signature information stripped.
  <info>string|null</info>  <strong>$output_filename</strong>                  

<comment>Return:</comment>
  <info>bool|int</info>  Returns <info>true</info> if the signature is verified, <info>false</info> if it is not correct (the message has
            been tampered with, or the signing certificate is invalid), or -1 on error.


id: openssl_pkey_derive
type: function
doc:
<comment>Description:</comment>
  Computes shared secret for public value of remote and local DH or ECDH key
  
  <strong>openssl_pkey_derive()</strong> takes a set of a <strong>$public_key</strong> and <strong>$private_key</strong> and derives a shared secret,
  for either DH or EC keys.

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>   <strong>$public_key</strong> is the public key
                                                                      for the derivation. See
                                                                      Public/Private Key parameters
                                                                      for a list of valid values.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>  <strong>$private_key</strong> is the private
                                                                      key for the derivation. See
                                                                      Public/Private Key parameters
                                                                      for a list of valid values.
  <info>int</info>                                                   <strong>$key_length</strong>   If not zero, will set the
                                                                      desired length of the derived
                                                                      secret.

<comment>Return:</comment>
  <info>string|false</info>  The derived secret on success or <info>false</info> on failure.


id: openssl_pkey_export
type: function
doc:
<comment>Description:</comment>
  Gets an exportable representation of a key into a string
  
  <strong>openssl_pkey_export()</strong> exports <strong>$key</strong> as a PEM encoded string and stores it into <strong>$output</strong> (which is
  passed by reference).
  
  You need to have a valid openssl.cnf installed for this function to operate correctly. See the
  notes under the installation section for more information.

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$key</strong>         
  <info>string</info>                                                <strong>$output</strong>      
  <info>string|null</info>                                           <strong>$passphrase</strong>  The key is optionally protected
                                                                     by <strong>$passphrase</strong>.
  <info>array|null</info>                                            <strong>$options</strong>     <strong>$options</strong> can be used to
                                                                     fine-tune the export process by
                                                                     specifying and/or overriding
                                                                     options for the openssl
                                                                     configuration file.  See
                                                                     <strong>openssl_csr_new()</strong> for more
                                                                     information about <strong>$options</strong>.

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


id: openssl_pkey_export_to_file
type: function
doc:
<comment>Description:</comment>
  Gets an exportable representation of a key into a file 
  
  <strong>openssl_pkey_export_to_file()</strong> saves an ascii-armoured (PEM encoded) rendition of <strong>$key</strong> into the
  file named by <strong>$output_filename</strong>.
  
  You need to have a valid openssl.cnf installed for this function to operate correctly. See the
  notes under the installation section for more information.

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$key</strong>              
  <info>string</info>                                                <strong>$output_filename</strong>  Path to the output file.
  <info>string|null</info>                                           <strong>$passphrase</strong>       The key can be optionally
                                                                          protected by a
                                                                          <strong>$passphrase</strong>.
  <info>array|null</info>                                            <strong>$options</strong>          <strong>$options</strong> can be used to
                                                                          fine-tune the export
                                                                          process by specifying
                                                                          and/or overriding options
                                                                          for the openssl
                                                                          configuration file. See
                                                                          <strong>openssl_csr_new()</strong> for more
                                                                          information about
                                                                          <strong>$options</strong>.

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


id: openssl_pkey_free
type: function
doc:
<comment>Description:</comment>
  Frees a private key
  
  This function has no effect. Prior to PHP 8.0.0, this function was used to close the resource.
  
  This function frees a private key created by <strong>openssl_pkey_new()</strong>.

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey</info>  <strong>$key</strong>  Resource holding the key.

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


id: openssl_pkey_get_details
type: function
doc:
<comment>Description:</comment>
  Returns an array with the key details
  
  This function returns the key details (bits, key, type).

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey</info>  <strong>$key</strong>  Resource holding the key.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array with the key details on success or <info>false</info> on failure. Returned array
               has indexes <return>bits</return> (number of bits), <return>key</return> (string representation of the public key) and
               <return>type</return> (type of the key which is one of <info>OPENSSL_KEYTYPE_RSA</info>, <info>OPENSSL_KEYTYPE_DSA</info>,
               <info>OPENSSL_KEYTYPE_DH</info>, <info>OPENSSL_KEYTYPE_EC</info> or -1 meaning unknown).
               
               Depending on the key type used, additional details may be returned. Note that  some
               elements may not always be available.
               
               <info>OPENSSL_KEYTYPE_RSA</info>, an additional array key named <return>"rsa"</return>,  containing the key data is
               returned.
               
               <info>OPENSSL_KEYTYPE_DSA</info>, an additional array key named <return>"dsa"</return>,  containing the key data is
               returned.
               
               <info>OPENSSL_KEYTYPE_DH</info>, an additional array key named <return>"dh"</return>,  containing the key data is
               returned.
               
               <info>OPENSSL_KEYTYPE_EC</info>, an additional array key named <return>"ec"</return>,  containing the key data is
               returned.


id: openssl_pkey_get_private
type: function
doc:
<comment>Description:</comment>
  Get a private key
  
  <strong>openssl_pkey_get_private()</strong> parses <strong>$private_key</strong> and prepares it for use by other functions.

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>  <strong>$private_key</strong> can be one of the
                                                                      following: a string having the
                                                                      format
                                                                      file://path/to/file.pem. The
                                                                      named file must contain a PEM
                                                                      encoded certificate/private
                                                                      key (it may contain both). A
                                                                      PEM formatted private key.
                                                                      
                                                                      a string having the format
                                                                      file://path/to/file.pem. The
                                                                      named file must contain a PEM
                                                                      encoded certificate/private
                                                                      key (it may contain both).
                                                                      
                                                                      A PEM formatted private key.
  <info>string|null</info>                                           <strong>$passphrase</strong>   The optional parameter
                                                                      <strong>$passphrase</strong> must be used if
                                                                      the specified key is encrypted
                                                                      (protected by a passphrase).

<comment>Return:</comment>
  <info>OpenSSLAsymmetricKey|false</info>  Returns an <class>OpenSSLAsymmetricKey</class> instance on success, or <info>false</info> on
                              error.


id: openssl_pkey_get_public
type: function
doc:
<comment>Description:</comment>
  Extract public key from certificate and prepare it for use
  
  <strong>openssl_pkey_get_public()</strong> extracts the public key from <strong>$public_key</strong> and prepares it for use by
  other functions.

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>  <strong>$public_key</strong> can be one of the
                                                                     following: an
                                                                     <class>OpenSSLAsymmetricKey</class> instancea
                                                                     string having the format
                                                                     file://path/to/file.pem. The
                                                                     named file must contain a PEM
                                                                     encoded certificate/public key
                                                                     (it may contain both). A PEM
                                                                     formatted public key.
                                                                     
                                                                     an <class>OpenSSLAsymmetricKey</class>
                                                                     instance
                                                                     
                                                                     a string having the format
                                                                     file://path/to/file.pem. The
                                                                     named file must contain a PEM
                                                                     encoded certificate/public key
                                                                     (it may contain both).
                                                                     
                                                                     A PEM formatted public key.

<comment>Return:</comment>
  <info>OpenSSLAsymmetricKey|false</info>  Returns an <class>OpenSSLAsymmetricKey</class> instance on success, or <info>false</info> on
                              error.


id: openssl_pkey_new
type: function
doc:
<comment>Description:</comment>
  Generates a new private key 
  
  <strong>openssl_pkey_new()</strong> generates a new private key. How to obtain the public component of the key is
  shown in an example below.
  
  You need to have a valid openssl.cnf installed for this function to operate correctly. See the
  notes under the installation section for more information.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$options</strong>  You can finetune the key generation (such as specifying the number of bits)
                        using <strong>$options</strong>.  See <strong>openssl_csr_new()</strong> for more information about <strong>$options</strong>.

<comment>Return:</comment>
  <info>OpenSSLAsymmetricKey|false</info>  Returns an <class>OpenSSLAsymmetricKey</class> instance for the pkey on success, or
                              <info>false</info> on error.


id: openssl_private_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypts data with private key 
  
  <strong>openssl_private_decrypt()</strong> decrypts <strong>$data</strong> that was previously encrypted via
  <strong>openssl_public_encrypt()</strong> and stores the result into <strong>$decrypted_data</strong>.
  
  You can use this function e.g. to decrypt data which is supposed to only be available to you.

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>            
  <info>string</info>                                                <strong>$decrypted_data</strong>  
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>     <strong>$private_key</strong> must be the
                                                                         private key corresponding
                                                                         that was used to encrypt
                                                                         the data.
  <info>int</info>                                                   <strong>$padding</strong>         <strong>$padding</strong> can be one of
                                                                         <info>OPENSSL_PKCS1_PADDING</info>,
                                                                         <info>OPENSSL_SSLV23_PADDING</info>,
                                                                         <info>OPENSSL_PKCS1_OAEP_PADDING</info>,
                                                                         <info>OPENSSL_NO_PADDING</info>.

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

<comment>See Also:</comment>
   * <strong>openssl_public_encrypt()</strong>
   * <strong>openssl_public_decrypt()</strong>


id: openssl_private_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypts data with private key 
  
  <strong>openssl_private_encrypt()</strong> encrypts <strong>$data</strong> with private <strong>$private_key</strong> and stores the result into
  <strong>$encrypted_data</strong>. Encrypted data can be decrypted via <strong>openssl_public_decrypt()</strong>.
  
  This function can be used e.g. to sign data (or its hash) to prove that it is not written by
  someone else.

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>            
  <info>string</info>                                                <strong>$encrypted_data</strong>  
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>     
  <info>int</info>                                                   <strong>$padding</strong>         <strong>$padding</strong> can be one of
                                                                         <info>OPENSSL_PKCS1_PADDING</info>,
                                                                         <info>OPENSSL_NO_PADDING</info>.

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

<comment>See Also:</comment>
   * <strong>openssl_public_encrypt()</strong>
   * <strong>openssl_public_decrypt()</strong>


id: openssl_public_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypts data with public key 
  
  <strong>openssl_public_decrypt()</strong> decrypts <strong>$data</strong> that was previous encrypted via <strong>openssl_private_encrypt()</strong>
  and stores the result into <strong>$decrypted_data</strong>.
  
  You can use this function e.g. to check if the message was written by the owner of the private
  key.

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>            
  <info>string</info>                                                <strong>$decrypted_data</strong>  
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>      <strong>$public_key</strong> must be the
                                                                         public key corresponding
                                                                         that was used to encrypt
                                                                         the data.
  <info>int</info>                                                   <strong>$padding</strong>         <strong>$padding</strong> can be one of
                                                                         <info>OPENSSL_PKCS1_PADDING</info>,
                                                                         <info>OPENSSL_NO_PADDING</info>.

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

<comment>See Also:</comment>
   * <strong>openssl_private_encrypt()</strong>
   * <strong>openssl_private_decrypt()</strong>


id: openssl_public_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypts data with public key 
  
  <strong>openssl_public_encrypt()</strong> encrypts <strong>$data</strong> with public <strong>$public_key</strong> and stores the result into
  <strong>$encrypted_data</strong>. Encrypted data can be decrypted via <strong>openssl_private_decrypt()</strong>.
  
  This function can be used e.g. to encrypt message which can be then read only by owner of the
  private key. It can be also used to store secure data in database.

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>            
  <info>string</info>                                                <strong>$encrypted_data</strong>  This will hold the result
                                                                         of the encryption.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>      The public key.
  <info>int</info>                                                   <strong>$padding</strong>         <strong>$padding</strong> can be one of
                                                                         <info>OPENSSL_PKCS1_PADDING</info>,
                                                                         <info>OPENSSL_SSLV23_PADDING</info>,
                                                                         <info>OPENSSL_PKCS1_OAEP_PADDING</info>,
                                                                         <info>OPENSSL_NO_PADDING</info>.

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

<comment>See Also:</comment>
   * <strong>openssl_private_encrypt()</strong>
   * <strong>openssl_private_decrypt()</strong>


id: openssl_random_pseudo_bytes
type: function
doc:
<comment>Description:</comment>
  Generate a pseudo-random string of bytes
  
  Generates a <info>string</info> of pseudo-random bytes, with the number of bytes determined by the <strong>$length</strong>
  parameter.
  
  It also indicates if a cryptographically strong algorithm was used to produce the pseudo-random
  bytes, and does this via the optional <strong>$strong_result</strong> parameter. It's rare for this to be <info>false</info>,
  but some systems may be broken or old.

<comment>Param:</comment>
  <info>int</info>   <strong>$length</strong>         The length of the desired string of bytes. Must be a positive integer less
                        than or equal to <return>2147483647</return>. PHP will try to cast this parameter to a
                        non-null integer to use it.
  <info>bool</info>  <strong>$strong_result</strong>  If passed into the function, this will hold a <info>bool</info> value that determines if
                        the algorithm used was "cryptographically strong", e.g., safe for usage with
                        GPG,  passwords, etc. <info>true</info> if it did, otherwise <info>false</info>

<comment>Return:</comment>
  <info>string</info>  Returns the generated <info>string</info> of bytes.

<comment>See Also:</comment>
   * <strong>random_bytes()</strong>
   * <strong>bin2hex()</strong>
   * <strong>crypt()</strong>
   * <strong>random_int()</strong>


id: openssl_seal
type: function
doc:
<comment>Description:</comment>
  Seal (encrypt) data
  
  <strong>openssl_seal()</strong> seals (encrypts) <strong>$data</strong> by using the given <strong>$cipher_algo</strong> with a randomly generated
  secret key. The key is encrypted with each of the public keys associated with the identifiers in
  <strong>$public_key</strong> and each encrypted key is returned in <strong>$encrypted_keys</strong>. This means that one can send
  sealed data to multiple recipients (provided one has obtained their public keys). Each recipient
  must receive both the sealed data and the envelope key that was encrypted with the recipient's
  public key.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>            The data to seal.
  <info>string</info>  <strong>$sealed_data</strong>     The sealed data.
  <info>array</info>   <strong>$encrypted_keys</strong>  Array of encrypted keys.
  <info>array</info>   <strong>$public_key</strong>      Array of <class>OpenSSLAsymmetricKey</class> instances containing public keys.
  <info>string</info>  <strong>$cipher_algo</strong>     The cipher method.  The default value (<return>'RC4'</return>) is considered insecure. It
                           is strongly recommended to explicitly specify a secure cipher method.
                           
                           The default value (<return>'RC4'</return>) is considered insecure. It is strongly
                           recommended to explicitly specify a secure cipher method.
  <info>string</info>  <strong>$iv</strong>              The initialization vector.

<comment>Return:</comment>
  <info>int|false</info>  Returns the length of the sealed data on success, or <info>false</info> on error. If successful the
             sealed data is returned in <strong>$sealed_data</strong>, and the envelope keys in <strong>$encrypted_keys</strong>.

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


id: openssl_sign
type: function
doc:
<comment>Description:</comment>
  Generate signature
  
  <strong>openssl_sign()</strong> computes a signature for the specified <strong>$data</strong> by generating a cryptographic digital
  signature using the private key associated with <strong>$private_key</strong>. Note that the data itself is not
  encrypted.

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>         The string of data you wish to
                                                                      sign
  <info>string</info>                                                <strong>$signature</strong>    If the call was successful the
                                                                      signature is returned in
                                                                      <strong>$signature</strong>.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>  <class>OpenSSLAsymmetricKey</class> - a key,
                                                                      returned by
                                                                      <strong>openssl_get_privatekey()</strong>
                                                                      
                                                                      <info>string</info> - a PEM formatted key
  <info>string|int</info>                                            <strong>$algorithm</strong>    <info>int</info> - one of these Signature
                                                                      Algorithms.
                                                                      
                                                                      <info>string</info> - a valid string
                                                                      returned by
                                                                      <strong>openssl_get_md_methods()</strong>
                                                                      example,
                                                                      "sha256WithRSAEncryption" or
                                                                      "sha384".

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

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


id: openssl_spki_export
type: function
doc:
<comment>Description:</comment>
  Exports a valid PEM formatted public key signed public key and challenge
  
  Exports PEM formatted public key from encoded signed public key and challenge

<comment>Param:</comment>
  <info>string</info>  <strong>$spki</strong>  Expects a valid signed public key and challenge

<comment>Return:</comment>
  <info>string|false</info>  Returns the associated PEM formatted public key or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openssl_spki_new()</strong>
   * <strong>openssl_spki_verify()</strong>
   * <strong>openssl_spki_export_challenge()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_spki_export_challenge
type: function
doc:
<comment>Description:</comment>
  Exports the challenge associated with a signed public key and challenge
  
  Exports challenge from encoded signed public key and challenge

<comment>Param:</comment>
  <info>string</info>  <strong>$spki</strong>  Expects a valid signed public key and challenge

<comment>Return:</comment>
  <info>string|false</info>  Returns the associated challenge string or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openssl_spki_new()</strong>
   * <strong>openssl_spki_verify()</strong>
   * <strong>openssl_spki_export()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_spki_new
type: function
doc:
<comment>Description:</comment>
  Generate a new signed public key and challenge
  
  Generates a signed public key and challenge using specified hashing algorithm

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey</info>  <strong>$private_key</strong>  <strong>$private_key</strong> should be set to a private key that was
                                      previously generated by <strong>openssl_pkey_new()</strong> (or otherwise
                                      obtained from the other openssl_pkey family of functions). The
                                      corresponding public portion of the key will be used to sign
                                      the CSR.
  <info>string</info>                <strong>$challenge</strong>    The challenge associated to associate with the SPKAC
  <info>int</info>                   <strong>$digest_algo</strong>  The digest algorithm. See openssl_get_md_method().

<comment>Return:</comment>
  <info>string|false</info>  Returns a signed public key and challenge string or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openssl_spki_verify()</strong>
   * <strong>openssl_spki_export_challenge()</strong>
   * <strong>openssl_spki_export()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_spki_verify
type: function
doc:
<comment>Description:</comment>
  Verifies a signed public key and challenge
  
  Validates the supplied signed public key and challenge

<comment>Param:</comment>
  <info>string</info>  <strong>$spki</strong>  Expects a valid signed public key and challenge

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

<comment>See Also:</comment>
   * <strong>openssl_spki_new()</strong>
   * <strong>openssl_spki_export_challenge()</strong>
   * <strong>openssl_spki_export()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_verify
type: function
doc:
<comment>Description:</comment>
  Verify signature
  
  <strong>openssl_verify()</strong> verifies that the <strong>$signature</strong> is correct for the specified <strong>$data</strong> using the public
  key associated with <strong>$public_key</strong>. This must be the public key corresponding to the private key used
  for signing.

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>        The string of data used to
                                                                     generate the signature
                                                                     previously
  <info>string</info>                                                <strong>$signature</strong>   A raw binary string, generated
                                                                     by <strong>openssl_sign()</strong> or similar
                                                                     means
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>  <class>OpenSSLAsymmetricKey</class> - a key,
                                                                     returned by
                                                                     <strong>openssl_get_publickey()</strong>
                                                                     
                                                                     <info>string</info> - a PEM formatted key
                                                                     (e.g. <return>-----BEGIN PUBLIC
                                                                     KEY-----
                                                                     MIIBCgK...</return>)
  <info>string|int</info>                                            <strong>$algorithm</strong>   <info>int</info> - one of these Signature
                                                                     Algorithms.
                                                                     
                                                                     <info>string</info> - a valid string
                                                                     returned by
                                                                     <strong>openssl_get_md_methods()</strong>
                                                                     example,
                                                                     "sha1WithRSAEncryption" or
                                                                     "sha512".

<comment>Return:</comment>
  <info>int|false</info>  Returns 1 if the signature is correct, 0 if it is incorrect, and -1 or <info>false</info> on error.

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


id: openssl_x509_check_private_key
type: function
doc:
<comment>Description:</comment>
  Checks if a private key corresponds to a certificate
  
  Checks whether the given <strong>$private_key</strong> is the private key that corresponds to <strong>$certificate</strong>.
  
  The function does not check if <strong>$private_key</strong> is indeed a private key or not. It merely compares the
  public materials (e.g. exponent and modulus of an RSA key) and/or key parameters (e.g. EC params
  of an EC key) of a key pair.
  
  This means, for example, that a public key could be given for <strong>$private_key</strong> and the function may
  return <info>true</info>.

<comment>Param:</comment>
  <info>OpenSSLCertificate|string</info>                             <strong>$certificate</strong>  The certificate.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>  The private key.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$private_key</strong> is the private key that corresponds to <strong>$certificate</strong>, or <info>false</info>
        otherwise.


id: openssl_x509_checkpurpose
type: function
doc:
<comment>Description:</comment>
  Verifies if a certificate can be used for a particular purpose
  
  <strong>openssl_x509_checkpurpose()</strong> examines a certificate to see if it can be used for the specified
  <strong>$purpose</strong>.

<comment>Param:</comment>
  <info>OpenSSLCertificate|string</info>  <strong>$certificate</strong>                  The examined certificate.
  <info>int</info>                        <strong>$purpose</strong>                      <strong>openssl_x509_checkpurpose()</strong>
                                                           purposesConstantDescriptionX509_PURPOSE_SSL_CLIENTCan
                                                           the certificate be used for the client
                                                           side of an SSL
                                                           connection?X509_PURPOSE_SSL_SERVERCan the
                                                           certificate be used for the server side
                                                           of an SSL
                                                           connection?X509_PURPOSE_NS_SSL_SERVERCan
                                                           the cert be used for Netscape SSL
                                                           server?X509_PURPOSE_SMIME_SIGNCan the
                                                           cert be used to sign S/MIME
                                                           email?X509_PURPOSE_SMIME_ENCRYPTCan the
                                                           cert be used to encrypt S/MIME
                                                           email?X509_PURPOSE_CRL_SIGNCan the cert
                                                           be used to sign a certificate revocation
                                                           list (CRL)?X509_PURPOSE_ANYCan the cert
                                                           be used for Any/All purposes? These
                                                           options are not bitfields - you may
                                                           specify one only!
  <info>array</info>                      <strong>$ca_info</strong>                      <strong>$ca_info</strong> should be an array of trusted CA
                                                           files/dirs as described in Certificate
                                                           Verification.
  <info>string|null</info>                <strong>$untrusted_certificates_file</strong>  If specified, this should be the name of
                                                           a PEM encoded file holding certificates
                                                           that can be used to help verify the
                                                           certificate, although no trust is placed
                                                           in the certificates that come from that
                                                           file.

<comment>Return:</comment>
  <info>bool|int</info>  Returns <info>true</info> if the certificate can be used for the intended purpose, <info>false</info> if it
            cannot, or -1 on error.


id: openssl_x509_export
type: function
doc:
<comment>Description:</comment>
  Exports a certificate as a string
  
  <strong>openssl_x509_export()</strong> stores <strong>$certificate</strong> into a string named by <strong>$output</strong> in a PEM encoded format.

<comment>Param:</comment>
  <info></info>        <strong>$x509</strong>     See Key/Certificate parameters for a list of valid values.
  <info>string</info>  <strong>$output</strong>   On success, this will hold the PEM.
  <info>bool</info>    <strong>$no_text</strong>  The optional parameter <strong>$notext</strong> affects the verbosity of the output; if it is
                    <info>false</info>, then additional human-readable information is included in the output. The
                    default value of <strong>$notext</strong> is <info>true</info>.

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


id: openssl_x509_export_to_file
type: function
doc:
<comment>Description:</comment>
  Exports a certificate to file
  
  <strong>openssl_x509_export_to_file()</strong> stores <strong>$certificate</strong> into a file named by <strong>$output_filename</strong> in a PEM
  encoded format.

<comment>Param:</comment>
  <info></info>        <strong>$x509</strong>             See Key/Certificate parameters for a list of valid values.
  <info>string</info>  <strong>$output_filename</strong>  Path to the output file.
  <info>bool</info>    <strong>$no_text</strong>          The optional parameter <strong>$notext</strong> affects the verbosity of the output; if
                            it is <info>false</info>, then additional human-readable information is included in
                            the output. The default value of <strong>$notext</strong> is <info>true</info>.

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


id: openssl_x509_fingerprint
type: function
doc:
<comment>Description:</comment>
  Calculates the fingerprint, or digest, of a given X.509 certificate
  
  <strong>openssl_x509_fingerprint()</strong> returns the digest of <strong>$certificate</strong> as a string.

<comment>Param:</comment>
  <info></info>        <strong>$x509</strong>         See Key/Certificate parameters for a list of valid values.
  <info>string</info>  <strong>$digest_algo</strong>  The digest method or hash algorithm to use, e.g. "sha256", one of
                        <strong>openssl_get_md_methods()</strong>.
  <info>bool</info>    <strong>$binary</strong>       When set to <info>true</info>, outputs raw binary data. <info>false</info> outputs lowercase hexits.

<comment>Return:</comment>
  <info>string|false</info>  Returns a string containing the calculated certificate fingerprint as lowercase
                hexits unless <strong>$binary</strong> is set to <info>true</info> in which case the raw binary representation of
                the message digest is returned.
                
                Returns <info>false</info> on failure.


id: openssl_x509_free
type: function
doc:
<comment>Description:</comment>
  Free certificate resource
  
  This function has no effect. Prior to PHP 8.0.0, this function was used to close the resource.
  
  <strong>openssl_x509_free()</strong> frees the certificate associated with the specified <strong>$certificate</strong> resource from
  memory.

<comment>Param:</comment>
  <info>OpenSSLCertificate</info>  <strong>$certificate</strong>  

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


id: openssl_x509_parse
type: function
doc:
<comment>Description:</comment>
  Parse an X509 certificate and return the information as an array
  
  <strong>openssl_x509_parse()</strong> returns information about the supplied <strong>$certificate</strong>, including fields such as
  subject name, issuer name, purposes, valid from and valid to dates etc.

<comment>Param:</comment>
  <info>OpenSSLCertificate|string</info>  <strong>$certificate</strong>  X509 certificate. See Key/Certificate parameters for a
                                           list of valid values.
  <info>bool</info>                       <strong>$short_names</strong>  <strong>$short_names</strong> controls how the data is indexed in the
                                           array - if <strong>$short_names</strong> is <info>true</info> (the default) then fields
                                           will be indexed with the short name form, otherwise, the
                                           long name form will be used - e.g.: CN is the shortname
                                           form of commonName.

<comment>Return:</comment>
  <info>array|false</info>  The structure of the returned data is (deliberately) not yet documented, as it is
               still subject to change.


id: openssl_x509_read
type: function
doc:
<comment>Description:</comment>
  Parse an X.509 certificate and return an object for
    it
  
  <strong>openssl_x509_read()</strong> parses the certificate supplied by <strong>$certificate</strong> and returns an
  <class>OpenSSLCertificate</class> object for it.

<comment>Param:</comment>
  <info>OpenSSLCertificate|string</info>  <strong>$certificate</strong>  X509 certificate. See Key/Certificate parameters for a
                                           list of valid values.

<comment>Return:</comment>
  <info>OpenSSLCertificate|false</info>  Returns an <class>OpenSSLCertificate</class> on success or <info>false</info> on failure.


id: openssl_x509_verify
type: function
doc:
<comment>Description:</comment>
  Verifies digital signature of x509 certificate against a public key
  
  <strong>openssl_x509_verify()</strong> verifies that the  <strong>$certificate</strong> certificate was signed by the private  key
  corresponding to public key <strong>$public_key</strong>.

<comment>Param:</comment>
  <info></info>                                                      <strong>$x509</strong>        See Key/Certificate parameters
                                                                     for a list of valid values.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>  <class>OpenSSLAsymmetricKey</class> - a key,
                                                                     returned by
                                                                     <strong>openssl_get_publickey()</strong>
                                                                     
                                                                     <info>string</info> - a PEM formatted key
                                                                     (e.g. <return>-----BEGIN PUBLIC
                                                                     KEY-----
                                                                     MIIBCgK...</return>)

<comment>Return:</comment>
  <info>int</info>  Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

<comment>See Also:</comment>
   * <strong>openssl_verify()</strong>
   * <strong>openssl_get_publickey()</strong>


id: ord
type: function
doc:
<comment>Description:</comment>
  Convert the first byte of a string to a value between 0 and 255
  
  Interprets the binary value of the first byte of <strong>$character</strong> as an unsigned integer between 0 and
  255.
  
  If the string is in a single-byte encoding, such as ASCII, ISO-8859, or Windows 1252, this is
  equivalent to returning the position of a character in the character set's mapping table. However,
  note that this function is not aware of any string encoding, and in particular will never identify
  a Unicode code point in a multi-byte encoding such as UTF-8 or UTF-16.
  
  This function complements <strong>chr()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$character</strong>  A character.

<comment>Return:</comment>
  <info>int</info>  An integer between 0 and 255.

<comment>See Also:</comment>
   * <strong>chr()</strong>
   * An ASCII-table
   * <strong>mb_ord()</strong>
   * <strong>IntlChar::ord()</strong>


id: output_add_rewrite_var
type: function
doc:
<comment>Description:</comment>
  Add URL rewriter values
  
  This function adds another name/value pair to the URL rewrite mechanism. The name and value will
  be added to URLs (as GET parameter) and forms (as hidden input fields) the same way as the session
  ID when transparent URL rewriting is enabled with session.use_trans_sid.
  
  This function's behaviour is controlled by the url_rewriter.tags and url_rewriter.hosts php.ini
  parameters.
  
  Note that this function can be successfully called at most once per request.
  
  Calling this function will implicitly start output buffering if it is not active already.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   The variable name.
  <info>string</info>  <strong>$value</strong>  The variable value.

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

<comment>See Also:</comment>
   * <strong>output_reset_rewrite_vars()</strong>
   * <strong>ob_flush()</strong>
   * <strong>ob_list_handlers()</strong>
   * url_rewriter.tags
   * url_rewriter.hosts
   * session.trans_sid_tags
   * session.trans_sid_hosts


id: output_reset_rewrite_vars
type: function
doc:
<comment>Description:</comment>
  Reset URL rewriter values
  
  This function resets the URL rewriter and removes all rewrite variables previously set by the
  <strong>output_add_rewrite_var()</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>output_add_rewrite_var()</strong>
   * <strong>ob_flush()</strong>
   * <strong>ob_list_handlers()</strong>
   * url_rewriter.tags
   * url_rewriter.hosts
   * session.trans_sid_tags
   * session.trans_sid_hosts


id: pack
type: function
doc:
<comment>Description:</comment>
  Pack data into binary string
  
  Pack given arguments into a binary string according to <strong>$format</strong>.
  
  The idea for this function was taken from Perl and all formatting codes work the same as in Perl.
  However, there are some formatting codes that are missing such as Perl's "u" format code.
  
  Note that the distinction between signed and unsigned values only affects the function <strong>unpack()</strong>,
  where as function <strong>pack()</strong> gives the same result for signed and unsigned format codes.

<comment>Param:</comment>
  <info>string</info>  <strong>$format</strong>  The <strong>$format</strong> string consists of format codes followed by an optional repeater
                   argument. The repeater argument can be either an integer value or <return>*</return> for repeating
                   to the end of the input data. For a, A, h, H the repeat count specifies how many
                   characters of one data argument are taken, for @ it is the absolute position
                   where to put the next data, for everything else the repeat count specifies how
                   many data arguments are consumed and packed into the resulting binary string.
                   
                   Currently implemented formats are: <strong>pack()</strong> format
                   charactersCodeDescriptionaNUL-padded stringASPACE-padded stringhHex string, low
                   nibble firstHHex string, high nibble firstcsigned charCunsigned charssigned short
                   (always 16 bit, machine byte order)Sunsigned short (always 16 bit, machine byte
                   order)nunsigned short (always 16 bit, big endian byte order)vunsigned short
                   (always 16 bit, little endian byte order)isigned integer (machine dependent size
                   and byte order)Iunsigned integer (machine dependent size and byte order)lsigned
                   long (always 32 bit, machine byte order)Lunsigned long (always 32 bit, machine
                   byte order)Nunsigned long (always 32 bit, big endian byte order)Vunsigned long
                   (always 32 bit, little endian byte order)qsigned long long (always 64 bit,
                   machine byte order)Qunsigned long long (always 64 bit, machine byte
                   order)Junsigned long long (always 64 bit, big endian byte order)Punsigned long
                   long (always 64 bit, little endian byte order)ffloat (machine dependent size and
                   representation)gfloat (machine dependent size, little endian byte order)Gfloat
                   (machine dependent size, big endian byte order)ddouble (machine dependent size
                   and representation)edouble (machine dependent size, little endian byte
                   order)Edouble (machine dependent size, big endian byte order)xNUL byteXBack up
                   one byteZNUL-padded string@NUL-fill to absolute position
  <info>mixed</info>   <strong>$values</strong>  

<comment>Return:</comment>
  <info>string</info>  Returns a binary string containing data.

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


id: parallel\Channel::__construct
type: function
doc:
<comment>Description:</comment>
  Channel Construction
  
  Shall make an anonymous unbuffered channel
  
  Shall make an anonymous buffered channel with the given capacity

<comment>Param:</comment>
  <info>int</info>  <strong>$capacity</strong>  May be <info>Channel::Infinite</info> or a positive integer


id: parallel\Channel::close
type: function
doc:
<comment>Description:</comment>
  Closing
  
  Shall close this channel

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


id: parallel\Channel::make
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall make an unbuffered channel with the given name
  
  Shall make a buffered channel with the given name and capacity

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>      The name of the channel.
  <info>int</info>     <strong>$capacity</strong>  May be <info>Channel::Infinite</info> or a positive integer

<comment>Return:</comment>
  <info>Channel</info>  


id: parallel\Channel::open
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall open the channel with the given name

<comment>Return:</comment>
  <info>Channel</info>  


id: parallel\Channel::recv
type: function
doc:
<comment>Description:</comment>
  Sharing
  
  Shall recv a value from this channel

<comment>Return:</comment>
  <info>mixed</info>  


id: parallel\Channel::send
type: function
doc:
<comment>Description:</comment>
  Sharing
  
  Shall send the given value on this channel

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


id: parallel\Events::addChannel
type: function
doc:
<comment>Description:</comment>
  Targets
  
  Shall watch for events on the given <strong>$channel</strong>

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


id: parallel\Events::addFuture
type: function
doc:
<comment>Description:</comment>
  Targets
  
  Shall watch for events on the given <strong>$future</strong>

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


id: parallel\Events::poll
type: function
doc:
<comment>Description:</comment>
  Polling
  
  Shall poll for the next event

<comment>Return:</comment>
  <info>parallel\Events\Event|null</info>  Should there be no targets remaining, <info>null</info> shall be returned
                              
                              Should this be a non-blocking loop, and blocking would occur, <info>null</info>
                              shall be returned
                              
                              Otherwise, the <class>parallel\Events\Event</class> returned describes the event.


id: parallel\Events::remove
type: function
doc:
<comment>Description:</comment>
  Targets
  
  Shall remove the given <strong>$target</strong>

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


id: parallel\Events::setBlocking
type: function
doc:
<comment>Description:</comment>
  Behaviour
  
  By default when events are polled for, blocking will occur (at the PHP level) until the first
  event can be returned: Setting blocking mode to <info>false</info> will cause poll to return control if the
  first target polled is not ready.
  
  This differs from setting a timeout of 0 with parallel\Events::setTimeout, since a timeout of 0,
  while allowed, will cause an exception  to be raised, which may be extremely slow or wasteful if
  what is really desired is non-blocking behaviour.
  
  A non-blocking loop effects the return value of parallel\Events::poll, such that it may be <info>null</info>
  before all events have been processed.
  
  Shall set blocking mode

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


id: parallel\Events::setInput
type: function
doc:
<comment>Description:</comment>
  Input
  
  Shall set <strong>$input</strong> for this event loop

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


id: parallel\Events::setTimeout
type: function
doc:
<comment>Description:</comment>
  Behaviour
  
  By default when events are polled for, blocking will occur (at the PHP level) until the first
  event can be returned: Setting the timeout causes an exception to be thrown when the timeout is
  reached.
  
  This differs from setting blocking mode to <info>false</info> with parallel\Events::setBlocking, which will not
  cause an exception to be thrown.
  
  Shall set the timeout in microseconds

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


id: parallel\Events\Input::add
type: function
doc:
<comment>Description:</comment>
  Inputs
  
  Shall set input for the given target

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


id: parallel\Events\Input::clear
type: function
doc:
<comment>Description:</comment>
  Inputs
  
  Shall remove input for all targets

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


id: parallel\Events\Input::remove
type: function
doc:
<comment>Description:</comment>
  Inputs
  
  Shall remove input for the given target

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


id: parallel\Future::cancel
type: function
doc:
<comment>Description:</comment>
  Cancellation
  
  Shall try to cancel the task
  
  If task is running, it will be interrupted.
  
  Internal function calls in progress cannot be interrupted.

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


id: parallel\Future::cancelled
type: function
doc:
<comment>Description:</comment>
  State Detection
  
  Shall indicate if the task was cancelled

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


id: parallel\Future::done
type: function
doc:
<comment>Description:</comment>
  State Detection
  
  Shall indicate if the task is completed

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


id: parallel\Future::value
type: function
doc:
<comment>Description:</comment>
  Resolution
  
  Shall return (and if necessary wait for) return from task

<comment>Return:</comment>
  <info>mixed</info>  


id: parallel\Runtime::__construct
type: function
doc:
<comment>Description:</comment>
  Runtime Construction
  
  Shall construct a new runtime without bootstrapping.
  
  Shall construct a bootstrapped runtime.

<comment>Param:</comment>
  <info>string</info>  <strong>$bootstrap</strong>  The location of a bootstrap file, generally an autoloader.


id: parallel\Runtime::close
type: function
doc:
<comment>Description:</comment>
  Runtime Graceful Join
  
  Shall request that the runtime shutsdown.
  
  Tasks scheduled for execution will be executed before the shutdown occurs.

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


id: parallel\Runtime::kill
type: function
doc:
<comment>Description:</comment>
  Runtime Join
  
  Shall attempt to force the runtime to shutdown.
  
  Tasks scheduled for execution will not be executed, the currently running task shall be
  interrupted.
  
  Internal function calls in progress cannot be interrupted.

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


id: parallel\Runtime::run
type: function
doc:
<comment>Description:</comment>
  Execution
  
  Shall schedule <strong>$task</strong> for execution in parallel.
  
  Shall schedule <strong>$task</strong> for execution in parallel, passing <strong>$argv</strong> at execution time.

<comment>Param:</comment>
  <info>Closure</info>  <strong>$task</strong>  A <class>Closure</class> with specific characteristics.
  <info>array</info>    <strong>$argv</strong>  An <info>array</info> of arguments with specific characteristics to be passed to <strong>$task</strong> at
                  execution time.

<comment>Return:</comment>
  <info>Future|null</info>  The return <info>parallel\Future</info> must not be ignored when the task contains a return or
               throw statement.


id: parallel\Sync::__construct
type: function
doc:
<comment>Description:</comment>
  Construction
  
  Shall construct a new synchronization object with no value
  
  Shall construct a new synchronization object containing the given scalar value


id: parallel\Sync::__invoke
type: function
doc:
<comment>Description:</comment>
  Synchronization
  
  Shall exclusively enter into the critical code


id: parallel\Sync::get
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall atomically return the synchronization objects value

<comment>Return:</comment>
  <info>scalar</info>  


id: parallel\Sync::notify
type: function
doc:
<comment>Description:</comment>
  Synchronization
  
  Shall notify one (by default) or all threads waiting on the synchronization object


id: parallel\Sync::set
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall atomically set the value of the synchronization object


id: parallel\Sync::wait
type: function
doc:
<comment>Description:</comment>
  Synchronization
  
  Shall wait for notification on this synchronization object


id: parallel\bootstrap
type: function
doc:
<comment>Description:</comment>
  Bootstrapping
  
  Shall use the provided <strong>$file</strong> to bootstrap all runtimes created for automatic scheduling via
  <strong>parallel\run()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$file</strong>  Path to the file to bootstrap all runtimes.

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

<comment>See Also:</comment>
   * 


id: parallel\run
type: function
doc:
<comment>Description:</comment>
  Execution
  
  Shall schedule <strong>$task</strong> for execution in parallel.
  
  Shall schedule <strong>$task</strong> for execution in parallel, passing <strong>$argv</strong> at execution time.

<comment>Param:</comment>
  <info>Closure</info>  <strong>$task</strong>  A <class>Closure</class> with specific characteristics.
  <info>array</info>    <strong>$argv</strong>  An <info>array</info> of arguments with specific characteristics to be passed to <strong>$task</strong> at
                  execution time.

<comment>Return:</comment>
  <info>Future|null</info>  The return <info>parallel\Future</info> must not be ignored when the task contains a return or
               throw statement.

<comment>See Also:</comment>
   * 


id: parse_ini_file
type: function
doc:
<comment>Description:</comment>
  Parse a configuration file
  
  <strong>parse_ini_file()</strong> loads in the ini file specified in <strong>$filename</strong>, and returns the settings in it in
  an associative array.
  
  The structure of the ini file is the same as the php.ini's.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>          The filename of the ini file being parsed. If a relative path is used,
                             it is evaluated relative to the current working directory, then the
                             include_path.
  <info>bool</info>    <strong>$process_sections</strong>  By setting the <strong>$process_sections</strong> parameter to <info>true</info>, you get a
                             multidimensional array, with the section names and settings included.
                             The default for <strong>$process_sections</strong> is <info>false</info>
  <info>int</info>     <strong>$scanner_mode</strong>      Can either be <info>INI_SCANNER_NORMAL</info> (default) or  <info>INI_SCANNER_RAW</info>. If
                             <info>INI_SCANNER_RAW</info>  is supplied, then option values will not be parsed.
                             
                             As of PHP 5.6.1 can also be specified as <info>INI_SCANNER_TYPED</info>. In this
                             mode boolean, null and integer types are preserved when possible.
                             String values <return>"true"</return>, <return>"on"</return> and <return>"yes"</return> are converted to <info>true</info>. <return>"false"</return>,
                             <return>"off"</return>, <return>"no"</return> and <return>"none"</return> are considered <info>false</info>. <return>"null"</return> is converted to
                             <info>null</info> in typed mode. Also, all numeric strings are converted to integer
                             type if it is possible.

<comment>Return:</comment>
  <info>array|false</info>  The settings are returned as an associative <info>array</info> on success, and <info>false</info> on failure.

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


id: parse_ini_string
type: function
doc:
<comment>Description:</comment>
  Parse a configuration string
  
  <strong>parse_ini_string()</strong> returns the settings in string <strong>$ini_string</strong> in an associative array.
  
  The structure of the ini string is the same as the php.ini's.

<comment>Param:</comment>
  <info>string</info>  <strong>$ini_string</strong>        The contents of the ini file being parsed.
  <info>bool</info>    <strong>$process_sections</strong>  By setting the <strong>$process_sections</strong> parameter to <info>true</info>, you get a
                             multidimensional array, with the section names and settings included.
                             The default for <strong>$process_sections</strong> is <info>false</info>
  <info>int</info>     <strong>$scanner_mode</strong>      Can either be <info>INI_SCANNER_NORMAL</info> (default) or  <info>INI_SCANNER_RAW</info>. If
                             <info>INI_SCANNER_RAW</info>  is supplied, then option values will not be parsed.
                             
                             As of PHP 5.6.1 can also be specified as <info>INI_SCANNER_TYPED</info>. In this
                             mode boolean, null and integer types are preserved when possible.
                             String values <return>"true"</return>, <return>"on"</return> and <return>"yes"</return> are converted to <info>true</info>. <return>"false"</return>,
                             <return>"off"</return>, <return>"no"</return> and <return>"none"</return> are considered <info>false</info>. <return>"null"</return> is converted to
                             <info>null</info> in typed mode. Also, all numeric strings are converted to integer
                             type if it is possible.

<comment>Return:</comment>
  <info>array|false</info>  The settings are returned as an associative <info>array</info> on success, and <info>false</info> on failure.

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


id: parse_str
type: function
doc:
<comment>Description:</comment>
  Parses the string into variables
  
  Parses <strong>$string</strong> as if it were the query string passed via a URL and sets variables in the current
  scope (or in the array if <strong>$result</strong> is provided).

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The input string.
  <info>array</info>   <strong>$result</strong>  If the second parameter <strong>$result</strong> is present, variables are stored in this variable
                   as array elements instead.
                   
                   Using this function without the <strong>$result</strong> parameter is highly DISCOURAGED and
                   DEPRECATED as of PHP 7.2. As of PHP 8.0.0, the <strong>$result</strong> parameter is mandatory.

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

<comment>See Also:</comment>
   * <strong>parse_url()</strong>
   * <strong>pathinfo()</strong>
   * <strong>http_build_query()</strong>
   * <strong>urldecode()</strong>


id: parse_url
type: function
doc:
<comment>Description:</comment>
  Parse a URL and return its components
  
  This function parses a URL and returns an associative array containing any of the various
  components of the URL that are present. The values of the array elements are not URL decoded.
  
  This function is not meant to validate the given URL, it only breaks it up into the parts listed
  below. Partial and invalid URLs are also accepted, <strong>parse_url()</strong> tries its best to parse them
  correctly.

<comment>Param:</comment>
  <info>string</info>  <strong>$url</strong>        The URL to parse.
  <info>int</info>     <strong>$component</strong>  Specify one of <info>PHP_URL_SCHEME</info>, <info>PHP_URL_HOST</info>, <info>PHP_URL_PORT</info>, <info>PHP_URL_USER</info>,
                      <info>PHP_URL_PASS</info>, <info>PHP_URL_PATH</info>, <info>PHP_URL_QUERY</info> or <info>PHP_URL_FRAGMENT</info> to retrieve just
                      a specific URL component as a <info>string</info> (except when <info>PHP_URL_PORT</info> is given, in
                      which case the return value will be an <info>int</info>).

<comment>Return:</comment>
  <info>int|string|array|null|false</info>  On seriously malformed URLs, <strong>parse_url()</strong> may return <info>false</info>.
                               
                               If the <strong>$component</strong> parameter is omitted, an associative <info>array</info> is
                               returned. At least one element will be present within the array.
                               Potential keys within this array are: scheme - e.g. http
                               hostportuserpasspathquery - after the question mark <return>?</return> fragment -
                               after the hashmark <return>#</return>
                               
                               scheme - e.g. http
                               
                               host
                               
                               port
                               
                               user
                               
                               pass
                               
                               path
                               
                               query - after the question mark <return>?</return>
                               
                               fragment - after the hashmark <return>#</return>
                               
                               If the <strong>$component</strong> parameter is specified, <strong>parse_url()</strong> returns a
                               <info>string</info> (or an <info>int</info>, in the case of <info>PHP_URL_PORT</info>) instead of an <info>array</info>.
                               If the requested component doesn't exist within the given URL, <info>null</info>
                               will be returned. As of PHP 8.0.0, <strong>parse_url()</strong> distinguishes absent
                               and empty queries and fragments:
                               
                               
                               
                               Previously all cases resulted in query and fragment being <info>null</info>.
                               
                               Note that control characters (cf. <strong>ctype_cntrl()</strong>) in the components
                               are replaced with underscores (<return>_</return>).

<comment>See Also:</comment>
   * <strong>pathinfo()</strong>
   * <strong>parse_str()</strong>
   * <strong>http_build_query()</strong>
   * <strong>dirname()</strong>
   * <strong>basename()</strong>
   * RFC 3986


id: passthru
type: function
doc:
<comment>Description:</comment>
  Execute an external program and display raw output
  
  The <strong>passthru()</strong> function is similar to the <strong>exec()</strong> function in that it executes a <strong>$command</strong>. This
  function should be used in place of <strong>exec()</strong> or <strong>system()</strong> when the output from the Unix command is
  binary data which needs to be passed directly back to the browser.  A common use for this is to
  execute something like the pbmplus utilities that can output an image stream directly.  By setting
  the Content-type to <return>image/gif</return> and then calling a pbmplus program to output a gif, you can create
  PHP scripts that output images directly.

<comment>Param:</comment>
  <info>string</info>  <strong>$command</strong>      The command that will be executed.
  <info>int</info>     <strong>$result_code</strong>  If the <strong>$result_code</strong> argument is present, the  return status of the Unix
                        command will be placed here.

<comment>Return:</comment>
  <info>false|null</info>  Returns <info>null</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>exec()</strong>
   * <strong>system()</strong>
   * <strong>popen()</strong>
   * <strong>escapeshellcmd()</strong>
   * backtick operator


id: password_algos
type: function
doc:
<comment>Description:</comment>
  Get available password hashing algorithm IDs
  
  Returns a complete list of all registered password hashing algorithm IDs as an <info>array</info> of <info>string</info>s.

<comment>Return:</comment>
  <info>array</info>  Returns the available password hashing algorithm IDs.


id: password_get_info
type: function
doc:
<comment>Description:</comment>
  Returns information about the given hash
  
  When passed in a valid hash created by an algorithm supported by <strong>password_hash()</strong>, this function
  will return an array of information about that hash.

<comment>Param:</comment>
  <info>string</info>  <strong>$hash</strong>  A hash created by <strong>password_hash()</strong>.

<comment>Return:</comment>
  <info>array</info>  Returns an associative array with three elements:  <return>algo</return>, which will match a password
         algorithm constant<return>algoName</return>, which has the human readable name of the algorithm <return>options</return>,
         which includes the options provided when calling <strong>password_hash()</strong>
         
         <return>algo</return>, which will match a password algorithm constant
         
         <return>algoName</return>, which has the human readable name of the algorithm
         
         <return>options</return>, which includes the options provided when calling <strong>password_hash()</strong>


id: password_hash
type: function
doc:
<comment>Description:</comment>
  Creates a password hash
  
  <strong>password_hash()</strong> creates a new password hash using a strong one-way hashing algorithm.
  
  The following algorithms are currently supported:
  
  <info>PASSWORD_DEFAULT</info> - Use the bcrypt algorithm (default as of PHP 5.5.0). Note that this constant is
  designed to change over time as new and stronger algorithms are added to PHP. For that reason, the
  length of the result from using this identifier can change over time. Therefore, it is recommended
  to store the result in a database column that can expand beyond 60 characters (255 characters
  would be a good choice). <info>PASSWORD_BCRYPT</info> - Use the <info>CRYPT_BLOWFISH</info> algorithm to create the hash.
  This will produce a standard <strong>crypt()</strong> compatible hash using the "$2y$" identifier. The result will
  always be a 60 character string,  or <info>false</info> on failure. <info>PASSWORD_ARGON2I</info> - Use the Argon2i hashing
  algorithm to create the hash. This algorithm is only available if PHP has been compiled with
  Argon2 support. <info>PASSWORD_ARGON2ID</info> - Use the Argon2id hashing algorithm to create the hash. This
  algorithm is only available if PHP has been compiled with Argon2 support.
  
  <info>PASSWORD_DEFAULT</info> - Use the bcrypt algorithm (default as of PHP 5.5.0). Note that this constant is
  designed to change over time as new and stronger algorithms are added to PHP. For that reason, the
  length of the result from using this identifier can change over time. Therefore, it is recommended
  to store the result in a database column that can expand beyond 60 characters (255 characters
  would be a good choice).
  
  <info>PASSWORD_BCRYPT</info> - Use the <info>CRYPT_BLOWFISH</info> algorithm to create the hash. This will produce a
  standard <strong>crypt()</strong> compatible hash using the "$2y$" identifier. The result will always be a 60
  character string,  or <info>false</info> on failure.
  
  <info>PASSWORD_ARGON2I</info> - Use the Argon2i hashing algorithm to create the hash. This algorithm is only
  available if PHP has been compiled with Argon2 support.
  
  <info>PASSWORD_ARGON2ID</info> - Use the Argon2id hashing algorithm to create the hash. This algorithm is only
  available if PHP has been compiled with Argon2 support.
  
  Supported options for <info>PASSWORD_BCRYPT</info>:
  
  <return>salt</return> (<info>string</info>) - to manually provide a salt to use when hashing the password. Note that this will
  override and prevent a salt from being automatically generated.  If omitted, a random salt will be
  generated by <strong>password_hash()</strong> for each password hashed. This is the intended mode of operation.
  The salt option is deprecated. It is now preferred to simply use the salt that is generated by
  default. As of PHP 8.0.0, an explicitly given salt is ignored. <return>cost</return> (<info>int</info>) - which denotes the
  algorithmic cost that should be used.  Examples of these values can be found on the <strong>crypt()</strong> page.
  If omitted, a default value of <return>10</return> will be used. This is a good baseline cost, but you may want to
  consider increasing it depending on your hardware.
  
  <return>salt</return> (<info>string</info>) - to manually provide a salt to use when hashing the password. Note that this will
  override and prevent a salt from being automatically generated.
  
  If omitted, a random salt will be generated by <strong>password_hash()</strong> for each password hashed. This is
  the intended mode of operation.
  
  The salt option is deprecated. It is now preferred to simply use the salt that is generated by
  default. As of PHP 8.0.0, an explicitly given salt is ignored.
  
  <return>cost</return> (<info>int</info>) - which denotes the algorithmic cost that should be used.  Examples of these values can
  be found on the <strong>crypt()</strong> page.
  
  If omitted, a default value of <return>10</return> will be used. This is a good baseline cost, but you may want to
  consider increasing it depending on your hardware.
  
  Supported options for <info>PASSWORD_ARGON2I</info> and <info>PASSWORD_ARGON2ID</info>:
  
  <return>memory_cost</return> (<info>int</info>) - Maximum memory (in kibibytes) that may  be used to compute the Argon2 hash.
  Defaults to <info>PASSWORD_ARGON2_DEFAULT_MEMORY_COST</info>. <return>time_cost</return> (<info>int</info>) - Maximum amount of time it may
  take to compute the Argon2 hash. Defaults to <info>PASSWORD_ARGON2_DEFAULT_TIME_COST</info>. <return>threads</return> (<info>int</info>) -
  Number of threads to use for computing  the Argon2 hash. Defaults to
  <info>PASSWORD_ARGON2_DEFAULT_THREADS</info>.  Only available when PHP uses libargon2, not with libsodium
  implementation.
  
  <return>memory_cost</return> (<info>int</info>) - Maximum memory (in kibibytes) that may  be used to compute the Argon2 hash.
  Defaults to <info>PASSWORD_ARGON2_DEFAULT_MEMORY_COST</info>.
  
  <return>time_cost</return> (<info>int</info>) - Maximum amount of time it may  take to compute the Argon2 hash. Defaults to
  <info>PASSWORD_ARGON2_DEFAULT_TIME_COST</info>.
  
  <return>threads</return> (<info>int</info>) - Number of threads to use for computing  the Argon2 hash. Defaults to
  <info>PASSWORD_ARGON2_DEFAULT_THREADS</info>.
  
  Only available when PHP uses libargon2, not with libsodium implementation.

<comment>Param:</comment>
  <info>string</info>           <strong>$password</strong>  The user's password.
                              
                              Using the <info>PASSWORD_BCRYPT</info> as the algorithm, will result in the
                              <strong>$password</strong> parameter being truncated to a maximum length of 72 bytes.
  <info>string|int|null</info>  <strong>$algo</strong>      A password algorithm constant denoting the algorithm to use when
                              hashing the password.
  <info>array</info>            <strong>$options</strong>   An associative array containing options. See the password algorithm
                              constants for documentation on the supported options for each
                              algorithm.
                              
                              If omitted, a random salt will be created and the default cost will be
                              used.

<comment>Return:</comment>
  <info>string</info>  Returns the hashed password.
          
          The used algorithm, cost and salt are returned as part of the hash. Therefore, all
          information that's needed to verify the hash is included in it. This allows the
          <strong>password_verify()</strong> function to verify the hash without needing separate storage for the
          salt or algorithm information.

<comment>See Also:</comment>
   * <strong>password_verify()</strong>
   * <strong>password_needs_rehash()</strong>
   * <strong>crypt()</strong>
   * <strong>sodium_crypto_pwhash_str()</strong>


id: password_needs_rehash
type: function
doc:
<comment>Description:</comment>
  Checks if the given hash matches the given options
  
  This function checks to see if the supplied hash implements the algorithm and options provided. If
  not, it is assumed that the hash needs to be rehashed.

<comment>Param:</comment>
  <info>string</info>           <strong>$hash</strong>     A hash created by <strong>password_hash()</strong>.
  <info>string|int|null</info>  <strong>$algo</strong>     A password algorithm constant denoting the algorithm to use when
                             hashing the password.
  <info>array</info>            <strong>$options</strong>  An associative array containing options. See the password algorithm
                             constants for documentation on the supported options for each
                             algorithm.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the hash should be rehashed to match the given <strong>$algo</strong> and <strong>$options</strong>, or <info>false</info>
        otherwise.


id: password_verify
type: function
doc:
<comment>Description:</comment>
  Verifies that a password matches a hash
  
  Verifies that the given hash matches the given password. <strong>password_verify()</strong> is compatible with
  <strong>crypt()</strong>. Therefore, password hashes created by <strong>crypt()</strong> can be used with <strong>password_verify()</strong>.
  
  Note that <strong>password_hash()</strong> returns the algorithm, cost and salt  as part of the returned hash.
  Therefore, all information that's needed to verify the hash is included in it. This allows the
  verify function to verify the hash without needing separate storage for the salt or algorithm
  information.
  
  This function is safe against timing attacks.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  The user's password.
  <info>string</info>  <strong>$hash</strong>      A hash created by <strong>password_hash()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the password and hash match, or <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>password_needs_rehash()</strong>
   * <strong>password_hash()</strong>
   * userland implementation
   * <strong>sodium_crypto_pwhash_str_verify()</strong>


id: pathinfo
type: function
doc:
<comment>Description:</comment>
  Returns information about a file path
  
  <strong>pathinfo()</strong> returns information about <strong>$path</strong>: either an associative array or a string, depending on
  <strong>$flags</strong>.
  
  For information on retrieving the current path info, read the section on  predefined reserved
  variables.
  
  <strong>pathinfo()</strong> operates naively on the input string, and is not aware of the actual filesystem, or
  path components such as "<return>..</return>".
  
  On Windows systems only, the <return>\</return> character will be interpreted as a directory separator. On other
  systems it will be treated like any other character.
  
  <strong>pathinfo()</strong> is locale aware, so for it to parse a path containing multibyte characters correctly,
  the matching locale must be set using the <strong>setlocale()</strong> function.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>   The path to be parsed.
  <info>int</info>     <strong>$flags</strong>  If present, specifies a specific element to be returned; one of <info>PATHINFO_DIRNAME</info>,
                  <info>PATHINFO_BASENAME</info>, <info>PATHINFO_EXTENSION</info> or <info>PATHINFO_FILENAME</info>.
                  
                  If <strong>$flags</strong> is not specified, returns all available elements.

<comment>Return:</comment>
  <info>array|string</info>  If the <strong>$flags</strong> parameter is not passed, an associative <info>array</info> containing the following
                elements is returned: <return>dirname</return>, <return>basename</return>, <return>extension</return> (if any), and <return>filename</return>.
                
                If the <strong>$path</strong> has more than one extension, <info>PATHINFO_EXTENSION</info> returns only the last
                one and <info>PATHINFO_FILENAME</info> only strips the last one. (see first example below).
                
                If the <strong>$path</strong> does not have an extension, no <return>extension</return> element will be returned (see
                second example below).
                
                If the <return>basename</return> of the <strong>$path</strong> starts with a dot, the following characters are
                interpreted as <return>extension</return>, and the <return>filename</return> is empty (see third example below).
                
                If <strong>$flags</strong> is present, returns a <info>string</info> containing the requested element.

<comment>See Also:</comment>
   * <strong>dirname()</strong>
   * <strong>basename()</strong>
   * <strong>parse_url()</strong>
   * <strong>realpath()</strong>


id: pclose
type: function
doc:
<comment>Description:</comment>
  Closes process file pointer
  
  Closes a file pointer to a pipe opened by <strong>popen()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$handle</strong>  The file pointer must be valid, and must have been returned by a successful
                     call to <strong>popen()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the termination status of the process that was run. In case of  an error then <return>-1</return> is
       returned.
       
       If PHP has been compiled with --enable-sigchild, the return value of this function is
       undefined.

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


id: pcntl_alarm
type: function
doc:
<comment>Description:</comment>
  Set an alarm clock for delivery of a signal
  
  Creates a timer that will send a <info>SIGALRM</info> signal to the process after the given number of seconds.
  Any call to <strong>pcntl_alarm()</strong> will cancel any previously set alarm.

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>  The number of seconds to wait. If <strong>$seconds</strong> is zero, no new alarm is created.

<comment>Return:</comment>
  <info>int</info>  Returns the time in seconds that any previously scheduled alarm had remaining before it was
       to be delivered, or <return>0</return> if there was no previously scheduled alarm.


id: pcntl_async_signals
type: function
doc:
<comment>Description:</comment>
  Enable/disable asynchronous signal handling or return the old setting
  
  If the <strong>$enable</strong> parameter is <info>null</info>, <strong>pcntl_async_signals()</strong> returns whether asynchronous signal
  handling is enabled. Otherwise, asynchronous signal handling is enabled or disabled.

<comment>Param:</comment>
  <info>bool|null</info>  <strong>$enable</strong>  Whether asynchronous signal handling should be enabled.

<comment>Return:</comment>
  <info>bool</info>  When used as getter (<strong>$enable</strong> parameter is <info>null</info>) it returns whether asynchronous signal
        handling is enabled. When used as setter (<strong>$enable</strong> parameter is not <info>null</info>), it returns whether
        asynchronous signal handling was enabled before the function call.

<comment>See Also:</comment>
   * declare


id: pcntl_errno
type: function
doc:
<comment>Description:</comment>
  Alias of pcntl_get_last_error
  
  This function is an alias of:  <strong>pcntl_get_last_error()</strong>


id: pcntl_exec
type: function
doc:
<comment>Description:</comment>
  Executes specified program in current process space
  
  Executes the program with the given arguments.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>      <strong>$path</strong> must be the path to a binary executable or a script with a valid path
                     pointing to an executable in the shebang ( #!/usr/local/bin/perl for example)
                     as the first line.  See your system's man execve(2) page for additional
                     information.
  <info>array</info>   <strong>$args</strong>      <strong>$args</strong> is an array of argument strings passed to the program.
  <info>array</info>   <strong>$env_vars</strong>  <strong>$env_vars</strong> is an array of strings which are passed as environment to the
                     program.  The array is in the format of name =&gt; value, the key being the
                     name of the environmental variable and the value being the value of that
                     variable.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>false</info>.


id: pcntl_fork
type: function
doc:
<comment>Description:</comment>
  Forks the currently running process
  
  The <strong>pcntl_fork()</strong> function creates a child process that differs from the parent process only in its
  PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works
  on your system.

<comment>Return:</comment>
  <info>int</info>  On success, the PID of the child process is returned in the parent's thread of execution, and
       a 0 is returned in the child's thread of execution.  On failure, a -1 will be returned in the
       parent's context, no child process will be created, and a PHP error is raised.

<comment>See Also:</comment>
   * <strong>pcntl_rfork()</strong>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>cli_set_process_title()</strong>


id: pcntl_get_last_error
type: function
doc:
<comment>Description:</comment>
  Retrieve the error number set by the last pcntl function which failed
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>int</info>  Returns error code.

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


id: pcntl_getpriority
type: function
doc:
<comment>Description:</comment>
  Get the priority of any process
  
  <strong>pcntl_getpriority()</strong> gets the priority of <strong>$process_id</strong>. Because priority levels can differ between
  system types and kernel versions, please see your system's getpriority(2) man page for specific
  details.

<comment>Param:</comment>
  <info>int|null</info>  <strong>$process_id</strong>  If <info>null</info>, the process id of the current process is used.
  <info>int</info>       <strong>$mode</strong>        One of <info>PRIO_PGRP</info>, <info>PRIO_USER</info>, <info>PRIO_PROCESS</info>, <info>PRIO_DARWIN_BG</info> or
                         <info>PRIO_DARWIN_THREAD</info>.

<comment>Return:</comment>
  <info>int|false</info>  <strong>pcntl_getpriority()</strong> returns the priority of the process or <info>false</info> on error.  A lower
             numerical value causes more favorable scheduling.
             
             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>pcntl_setpriority()</strong>


id: pcntl_rfork
type: function
doc:
<comment>Description:</comment>
  Manipulates process resources
  
  Manipulates process resources.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>   The <strong>$flags</strong> parameter determines which resources of the invoking process (parent) are
                shared by the new process (child) or initialized to their default values.
                
                <strong>$flags</strong> is the logical OR of some subset of: <info>RFPROC</info>: If set a new process is created;
                otherwise changes affect the current process. <info>RFNOWAIT</info>: If set, the child process
                will be dissociated from the parent. Upon exit the child will not leave a status for
                the parent to collect. <info>RFFDG</info>: If set, the invoker's file descriptor table is copied;
                otherwise the two processes share a single table. <info>RFCFDG</info>: If set, the new process
                starts with a clean file descriptor table. Is mutually exclusive with <return>RFFDG</return>.
                <info>RFLINUXTHPN</info>: If set, the kernel will return SIGUSR1 instead of SIGCHILD upon thread
                exit for the child. This is intended to do Linux clone exit parent notification.
  <info>int</info>  <strong>$signal</strong>  The signal number.

<comment>Return:</comment>
  <info>int</info>  On success, the PID of the child process is returned in the parent's thread of execution, and
       a <return>0</return> is returned in the child's thread of execution.  On failure, a <return>-1</return> will be returned in the
       parent's context, no child process will be created, and a PHP error is raised.

<comment>See Also:</comment>
   * <strong>pcntl_fork()</strong>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>cli_set_process_title()</strong>


id: pcntl_setpriority
type: function
doc:
<comment>Description:</comment>
  Change the priority of any process
  
  <strong>pcntl_setpriority()</strong> sets the priority of <strong>$process_id</strong>.

<comment>Param:</comment>
  <info>int</info>       <strong>$priority</strong>    <strong>$priority</strong> is generally a value in the range <return>-20</return> to <return>20</return>. The default priority
                         is <return>0</return> while a lower numerical value causes more favorable scheduling.
                         Because priority levels can differ between system types and kernel
                         versions, please see your system's setpriority(2) man page for specific
                         details.
  <info>int|null</info>  <strong>$process_id</strong>  If <info>null</info>, the process id of the current process is used.
  <info>int</info>       <strong>$mode</strong>        One of <info>PRIO_PGRP</info>, <info>PRIO_USER</info>, <info>PRIO_PROCESS</info>, <info>PRIO_DARWIN_BG</info> or
                         <info>PRIO_DARWIN_THREAD</info>.

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

<comment>See Also:</comment>
   * <strong>pcntl_getpriority()</strong>
   * <strong>pcntl_setpriority()</strong>


id: pcntl_signal
type: function
doc:
<comment>Description:</comment>
  Installs a signal handler
  
  The <strong>pcntl_signal()</strong> function installs a new signal handler or replaces the current signal handler
  for the signal indicated by <strong>$signal</strong>.

<comment>Param:</comment>
  <info>int</info>           <strong>$signal</strong>            The signal number.
  <info>callable|int</info>  <strong>$handler</strong>           The signal handler. This may be either a <info>callable</info>, which will be
                                   invoked to handle the signal, or either of the two global
                                   constants <info>SIG_IGN</info> or <info>SIG_DFL</info>, which will ignore the signal or
                                   restore the default signal handler respectively.
                                   
                                   If a <info>callable</info> is given, it must implement the following
                                   signature:
                                   
                                   <info>void</info>handler<info>int</info><strong>$signo</strong><info>mixed</info><strong>$siginfo</strong><strong>$signal</strong> The signal being
                                   handled. <strong>$siginfo</strong> If operating systems supports siginfo_t
                                   structures, this will be an array of signal information dependent
                                   on the signal.
                                   
                                   The signal being handled.
                                   
                                   If operating systems supports siginfo_t structures, this will be
                                   an array of signal information dependent on the signal.
                                   
                                   Note that when you set a handler to an object method, that
                                   object's reference count is increased which makes it persist
                                   until you either change the handler to something else, or your
                                   script ends.
  <info>int</info>           <strong>$signal</strong>            The signal being handled.
  <info>mixed</info>         <strong>$siginfo</strong>           If operating systems supports siginfo_t structures, this will be
                                   an array of signal information dependent on the signal.
  <info>bool</info>          <strong>$restart_syscalls</strong>  Specifies whether system call restarting should be used when this
                                   signal arrives.

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

<comment>See Also:</comment>
   * <strong>pcntl_fork()</strong>
   * <strong>pcntl_waitpid()</strong>


id: pcntl_signal_dispatch
type: function
doc:
<comment>Description:</comment>
  Calls signal handlers for pending signals
  
  The <strong>pcntl_signal_dispatch()</strong> function calls the signal  handlers installed by <strong>pcntl_signal()</strong> for
  each pending signal.

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

<comment>See Also:</comment>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_sigprocmask()</strong>
   * <strong>pcntl_sigwaitinfo()</strong>
   * <strong>pcntl_sigtimedwait()</strong>


id: pcntl_signal_get_handler
type: function
doc:
<comment>Description:</comment>
  Get the current handler for specified signal
  
  The <strong>pcntl_signal_get_handler()</strong> function will get the current handler for the specified <strong>$signal</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$signal</strong>  The signal number.

<comment>Return:</comment>
  <info>callable|int</info>  This function may return an integer value that refers to <info>SIG_DFL</info> or <info>SIG_IGN</info>. If a
                custom handler has been set, that <info>callable</info> is returned.

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


id: pcntl_sigprocmask
type: function
doc:
<comment>Description:</comment>
  Sets and retrieves blocked signals
  
  The <strong>pcntl_sigprocmask()</strong> function adds, removes or sets blocked signals, depending on the <strong>$mode</strong>
  parameter.

<comment>Param:</comment>
  <info>int</info>    <strong>$mode</strong>         Sets the behavior of <strong>pcntl_sigprocmask()</strong>. Possible values:  <info>SIG_BLOCK</info>: Add
                       the signals to the currently blocked signals.<info>SIG_UNBLOCK</info>: Remove the signals
                       from the currently blocked signals.<info>SIG_SETMASK</info>: Replace the currently blocked
                       signals by the given list of signals.
  <info>array</info>  <strong>$signals</strong>      List of signals.
  <info>array</info>  <strong>$old_signals</strong>  The <strong>$old_signals</strong> parameter is set to an array containing the list of the
                       previously blocked signals.

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

<comment>See Also:</comment>
   * <strong>pcntl_sigwaitinfo()</strong>
   * <strong>pcntl_sigtimedwait()</strong>


id: pcntl_sigtimedwait
type: function
doc:
<comment>Description:</comment>
  Waits for signals, with a timeout
  
  The <strong>pcntl_sigtimedwait()</strong> function operates in exactly the same way as <strong>pcntl_sigwaitinfo()</strong> except
  that it takes two additional parameters, <strong>$seconds</strong> and <strong>$nanoseconds</strong>, which enable an upper bound to
  be placed on the time for which the script is suspended.

<comment>Param:</comment>
  <info>array</info>  <strong>$signals</strong>      Array of signals to wait for.
  <info>array</info>  <strong>$info</strong>         The <strong>$info</strong> is set to an array containing information about the signal. See
                       <strong>pcntl_sigwaitinfo()</strong>.
  <info>int</info>    <strong>$seconds</strong>      Timeout in seconds.
  <info>int</info>    <strong>$nanoseconds</strong>  Timeout in nanoseconds.

<comment>Return:</comment>
  <info>int|false</info>  <strong>pcntl_sigtimedwait()</strong> returns a signal number on success,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>pcntl_sigprocmask()</strong>
   * <strong>pcntl_sigwaitinfo()</strong>


id: pcntl_sigwaitinfo
type: function
doc:
<comment>Description:</comment>
  Waits for signals
  
  The <strong>pcntl_sigwaitinfo()</strong> function suspends execution of the calling script until one of the signals
  given in <strong>$signals</strong> are delivered. If one of the signal is already pending (e.g. blocked by
  <strong>pcntl_sigprocmask()</strong>), <strong>pcntl_sigwaitinfo()</strong> will return immediately.

<comment>Param:</comment>
  <info>array</info>  <strong>$signals</strong>  Array of signals to wait for.
  <info>array</info>  <strong>$info</strong>     The <strong>$info</strong> parameter is set to an array containing information about the signal.
                   
                   The following elements are set for all signals: signo: Signal numbererrno: An
                   error numbercode: Signal code
                   
                   The following elements may be set for the <info>SIGCHLD</info> signal: status: Exit value or
                   signalutime: User time consumedstime: System time consumedpid: Sending process
                   IDuid: Real user ID of sending process
                   
                   The following elements may be set for the <info>SIGILL</info>, <info>SIGFPE</info>, <info>SIGSEGV</info> and <info>SIGBUS</info>
                   signals: addr: Memory location which caused fault
                   
                   The following element may be set for the <info>SIGPOLL</info> signal: band: Band eventfd: File
                   descriptor number

<comment>Return:</comment>
  <info>int|false</info>  Returns a signal number on success, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>pcntl_sigprocmask()</strong>
   * <strong>pcntl_sigtimedwait()</strong>


id: pcntl_strerror
type: function
doc:
<comment>Description:</comment>
  Retrieve the system error message associated with the given errno
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>int</info>  <strong>$error_code</strong>  

<comment>Return:</comment>
  <info>string</info>  Returns error description.

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


id: pcntl_unshare
type: function
doc:
<comment>Description:</comment>
  Dissociates parts of the process execution context
  
  <strong>pcntl_unshare()</strong> allows a process to disassociate parts of its execution context that are currently
  being shared with other processes. The main use of <strong>pcntl_unshare()</strong> is to allow a process to
  control its shared execution context without creating a new process.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  The <strong>$flags</strong> parameter is a bitmask that specifies which parts of the execution context
               should be unshared. This parameter is specified by ORing together zero or more of the
               <return>CLONE_*</return> constants:
               <info>CLONE_NEWNS</info><info>CLONE_NEWIPC</info><info>CLONE_NEWUTS</info><info>CLONE_NEWNET</info><info>CLONE_NEWPID</info><info>CLONE_NEWUSER</info><info>CLONE_NEWCGROUP</info>

<comment>Return:</comment>
  <info>bool</info>  Returns <return>0</return> on success, <return>-1</return> otherwise. On failure it sets an error code, that can be retrieved
        with <strong>pcntl_get_last_error()</strong>.

<comment>See Also:</comment>
   * PCNTL Constants
   * <strong>pcntl_get_last_error()</strong>


id: pcntl_wait
type: function
doc:
<comment>Description:</comment>
  Waits on or returns the status of a forked child
  
  The wait function suspends execution of the current process until a child has exited, or until a
  signal is delivered whose action is to terminate the current process or to call a signal handling
  function.  If a child has already exited by the time of the call (a so-called "zombie" process),
  the function returns immediately.  Any system resources used by the child are freed.  Please see
  your system's wait(2) man page for specific details as to how wait works on your system.
  
  This function is equivalent to calling <strong>pcntl_waitpid()</strong> with a <return>-1</return> <strong>$process_id</strong> and no <strong>$flags</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  <strong>pcntl_wait()</strong> will store status information in the <strong>$status</strong> parameter which can be
                evaluated using the following functions: <strong>pcntl_wifexited()</strong>, <strong>pcntl_wifstopped()</strong>,
                <strong>pcntl_wifsignaled()</strong>, <strong>pcntl_wexitstatus()</strong>, <strong>pcntl_wtermsig()</strong> and <strong>pcntl_wstopsig()</strong>.
  <info>int</info>  <strong>$flags</strong>   If wait3 is available on your system (mostly BSD-style systems), you can provide the
                optional <strong>$flags</strong> parameter.  If this parameter is not provided, wait will be used for
                the system call.  If wait3 is not available, providing a value for <strong>$flags</strong> will have
                no effect. The value of <strong>$flags</strong> is the value of zero or more of the following two
                constants <return>OR</return>'ed together: Possible values for <strong>$flags</strong><return>WNOHANG</return> Return immediately if no
                child has exited. <return>WUNTRACED</return> Return for children which are stopped, and whose status
                has not been reported.

<comment>Return:</comment>
  <info>int</info>  <strong>pcntl_wait()</strong> returns the process ID of the child which exited, -1 on error or zero if WNOHANG
       was provided as an option (on wait3-available systems) and no child was available.

<comment>See Also:</comment>
   * <strong>pcntl_fork()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_wifexited()</strong>
   * <strong>pcntl_wifstopped()</strong>
   * <strong>pcntl_wifsignaled()</strong>
   * <strong>pcntl_wexitstatus()</strong>
   * <strong>pcntl_wtermsig()</strong>
   * <strong>pcntl_wstopsig()</strong>
   * <strong>pcntl_waitpid()</strong>


id: pcntl_waitpid
type: function
doc:
<comment>Description:</comment>
  Waits on or returns the status of a forked child
  
  Suspends execution of the current process until a child as specified by the <strong>$process_id</strong> argument
  has exited, or until a signal is delivered whose action is to terminate the current process or to
  call a signal handling function.
  
  If a child as requested by <strong>$process_id</strong> has already exited by the time of the call (a so-called
  "zombie" process), the function returns immediately.  Any system resources used by the child are
  freed. Please see your system's waitpid(2) man page for specific details as to how waitpid works
  on your system.

<comment>Param:</comment>
  <info>int</info>  <strong>$process_id</strong>  The value of <strong>$process_id</strong> can be one of the following: possible values for
                    <strong>$process_id</strong><return>\< -1</return> wait for any child process whose process group ID is equal to
                    the absolute value of <strong>$process_id</strong>. <return>-1</return> wait for any child process; this is the
                    same behaviour that the wait function exhibits. <return>0</return> wait for any child process
                    whose process group ID is equal to that of the calling process. <return>&gt; 0</return> wait for
                    the child whose process ID is equal to the value of <strong>$process_id</strong>.
                    
                    Specifying <return>-1</return> as the <strong>$process_id</strong> is equivalent to the functionality <strong>pcntl_wait()</strong>
                    provides (minus <strong>$flags</strong>).
  <info>int</info>  <strong>$status</strong>      <strong>pcntl_waitpid()</strong> will store status information in the <strong>$status</strong> parameter which can
                    be evaluated using the following functions: <strong>pcntl_wifexited()</strong>,
                    <strong>pcntl_wifstopped()</strong>, <strong>pcntl_wifsignaled()</strong>, <strong>pcntl_wexitstatus()</strong>, <strong>pcntl_wtermsig()</strong>
                    and <strong>pcntl_wstopsig()</strong>.
  <info>int</info>  <strong>$flags</strong>       The value of <strong>$flags</strong> is the value of zero or more of the following two global
                    constants <return>OR</return>'ed together: possible values for <strong>$flags</strong><return>WNOHANG</return> return immediately
                    if no child has exited. <return>WUNTRACED</return> return for children which are stopped, and
                    whose status has not been reported.

<comment>Return:</comment>
  <info>int</info>  <strong>pcntl_waitpid()</strong> returns the process ID of the child which exited, -1 on error or zero if
       <info>WNOHANG</info> was used and no child was available

<comment>See Also:</comment>
   * <strong>pcntl_fork()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_wifexited()</strong>
   * <strong>pcntl_wifstopped()</strong>
   * <strong>pcntl_wifsignaled()</strong>
   * <strong>pcntl_wexitstatus()</strong>
   * <strong>pcntl_wtermsig()</strong>
   * <strong>pcntl_wstopsig()</strong>


id: pcntl_wexitstatus
type: function
doc:
<comment>Description:</comment>
  Returns the return code of a terminated child
  
  Returns the return code of a terminated child.  This function is only useful if <strong>pcntl_wifexited()</strong>
  returned <info>true</info>.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  The <strong>$status</strong>
                parameter is the status parameter supplied to a successful
                call to <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>int|false</info>  Returns the return code. If the functionality is not supported by the OS, <info>false</info> is
             returned.

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_wifexited()</strong>


id: pcntl_wifexited
type: function
doc:
<comment>Description:</comment>
  Checks if status code represents a normal exit
  
  Checks whether the child status code represents a normal exit.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  The <strong>$status</strong>
                parameter is the status parameter supplied to a successful
                call to <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the child status code represents a normal exit, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_wexitstatus()</strong>


id: pcntl_wifsignaled
type: function
doc:
<comment>Description:</comment>
  Checks whether the status code represents a termination due to a signal
  
  Checks whether the child process exited because of a signal which was not caught.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  The <strong>$status</strong>
                parameter is the status parameter supplied to a successful
                call to <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the child process exited because of a signal which was not caught, <info>false</info>
        otherwise.

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_signal()</strong>


id: pcntl_wifstopped
type: function
doc:
<comment>Description:</comment>
  Checks whether the child process is currently stopped
  
  Checks whether the child process which caused the return is currently stopped; this is only
  possible if the call to <strong>pcntl_waitpid()</strong> was done using the option <return>WUNTRACED</return>.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  The <strong>$status</strong>
                parameter is the status parameter supplied to a successful
                call to <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the child process which caused the return is currently stopped, <info>false</info>
        otherwise.

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


id: pcntl_wstopsig
type: function
doc:
<comment>Description:</comment>
  Returns the signal which caused the child to stop
  
  Returns the number of the signal which caused the child to stop. This function is only useful if
  <strong>pcntl_wifstopped()</strong> returned <info>true</info>.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  The <strong>$status</strong>
                parameter is the status parameter supplied to a successful
                call to <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>int|false</info>  Returns the signal number. If the functionality is not supported by the OS, <info>false</info> is
             returned.

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_wifstopped()</strong>


id: pcntl_wtermsig
type: function
doc:
<comment>Description:</comment>
  Returns the signal which caused the child to terminate
  
  Returns the number of the signal that caused the child process to terminate. This function is only
  useful if <strong>pcntl_wifsignaled()</strong> returned <info>true</info>.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  The <strong>$status</strong>
                parameter is the status parameter supplied to a successful
                call to <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>int|false</info>  Returns the signal number. If the functionality is not supported by the OS, <info>false</info> is
             returned.

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_wifsignaled()</strong>


id: pfsockopen
type: function
doc:
<comment>Description:</comment>
  Open persistent Internet or Unix domain socket connection
  
  This function behaves exactly as <strong>fsockopen()</strong> with the difference that the connection is not closed
  after the script finishes. It is the persistent version of <strong>fsockopen()</strong>.

<comment>Return:</comment>
  <info>resource|false</info>  <strong>pfsockopen()</strong> returns a file pointer which may be used together with the other file
                  functions (such as <strong>fgets()</strong>, <strong>fgetss()</strong>, <strong>fwrite()</strong>, <strong>fclose()</strong>, and <strong>feof()</strong>), or <info>false</info> on
                  failure.

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


id: pg_affected_rows
type: function
doc:
<comment>Description:</comment>
  Returns number of affected records (tuples)
  
  <strong>pg_affected_rows()</strong> returns the number of tuples (instances/records/rows) affected by <return>INSERT</return>,
  <return>UPDATE</return>, and <return>DELETE</return> queries.
  
  Since PostgreSQL 9.0 and above, the server returns the number of  SELECTed rows. Older PostgreSQL
  return 0 for SELECT.
  
  This function used to be called <strong>pg_cmdtuples()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).

<comment>Return:</comment>
  <info>int</info>  The number of rows affected by the query. If no tuple is affected, it will return <return>0</return>.

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_query_params()</strong>
   * <strong>pg_execute()</strong>
   * <strong>pg_num_rows()</strong>


id: pg_cancel_query
type: function
doc:
<comment>Description:</comment>
  Cancel an asynchronous query
    
  
  <strong>pg_cancel_query()</strong> cancels an asynchronous query sent with  <strong>pg_send_query()</strong>, <strong>pg_send_query_params()</strong>
  or <strong>pg_send_execute()</strong>. You cannot cancel a query executed using  <strong>pg_query()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.

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

<comment>See Also:</comment>
   * <strong>pg_send_query()</strong>
   * <strong>pg_connection_busy()</strong>


id: pg_client_encoding
type: function
doc:
<comment>Description:</comment>
  Gets the client encoding
    
  
  PostgreSQL supports automatic character set conversion between  server and client for certain
  character sets. <strong>pg_client_encoding()</strong> returns the client encoding as a string. The returned string
  will be one of the standard PostgreSQL encoding identifiers.
  
  This function requires PostgreSQL 7.0 or higher. If libpq is compiled without multibyte encoding
  support, <strong>pg_client_encoding()</strong> always returns <return>SQL_ASCII</return>. Supported encoding depends on PostgreSQL
  version.  Refer to the PostgreSQL Documentation supported encodings.
  
  The function used to be called <strong>pg_clientencoding()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>string</info>  The client encoding.

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


id: pg_close
type: function
doc:
<comment>Description:</comment>
  Closes a PostgreSQL connection
  
  <strong>pg_close()</strong> closes the non-persistent connection to a PostgreSQL database associated with the given
  <strong>$connection</strong> instance.
  
  Using <strong>pg_close()</strong> is not usually necessary, as non-persistent open connections are automatically
  closed at the end of the script.
  
  If there is open <class>PgSql\Lob</class> instance on the connection, do not close the connection before closing
  all <class>PgSql\Lob</class> instances.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

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

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


id: pg_connect
type: function
doc:
<comment>Description:</comment>
  Open a PostgreSQL connection
  
  <strong>pg_connect()</strong> opens a connection to a PostgreSQL database specified by the <strong>$connection_string</strong>.
  
  If a second call is made to <strong>pg_connect()</strong> with the same <strong>$connection_string</strong> as an existing
  connection, the existing connection will be returned unless you pass <info>PGSQL_CONNECT_FORCE_NEW</info> as
  <strong>$flags</strong>.
  
  The old syntax with multiple parameters $conn = pg_connect("host", "port", "options", "tty",
  "dbname")  has been deprecated.

<comment>Param:</comment>
  <info>string</info>  <strong>$connection_string</strong>  The <strong>$connection_string</strong> can be empty to use all default parameters, or
                              it  can contain one or more parameter settings separated by
                              whitespace.  Each parameter setting is in the form <return>keyword = value</return>.
                              Spaces around  the equal sign are optional. To write an empty value or
                              a value  containing spaces, surround it with single quotes, e.g.,
                              <return>keyword =  'a value'</return>. Single quotes and backslashes within the value
                              must be  escaped with a backslash, i.e., \' and \\.
                              
                              The currently recognized parameter keywords are: <strong>$host</strong>, <strong>$hostaddr</strong>,
                              <strong>$port</strong>, <strong>$dbname</strong> (defaults to value of <strong>$user</strong>), <strong>$user</strong>, <strong>$password</strong>,
                              <strong>$connect_timeout</strong>, <strong>$options</strong>, <strong>$tty</strong> (ignored), <strong>$sslmode</strong>, <strong>$requiressl</strong>
                              (deprecated in favor of <strong>$sslmode</strong>), and <strong>$service</strong>.  Which of these
                              arguments exist depends on your PostgreSQL version.
                              
                              The <strong>$options</strong> parameter can be used to set command line parameters  to
                              be invoked by the server.
  <info>int</info>     <strong>$flags</strong>              If <info>PGSQL_CONNECT_FORCE_NEW</info> is passed, then a new connection is
                              created, even if the <strong>$connection_string</strong> is identical to an existing
                              connection.
                              
                              If <info>PGSQL_CONNECT_ASYNC</info> is given, then the connection is established
                              asynchronously. The state of the connection can then be checked via
                              <strong>pg_connect_poll()</strong> or <strong>pg_connection_status()</strong>.

<comment>Return:</comment>
  <info>PgSql\Connection|false</info>  Returns an <class>PgSql\Connection</class> instance on success,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>pg_pconnect()</strong>
   * <strong>pg_close()</strong>
   * <strong>pg_host()</strong>
   * <strong>pg_port()</strong>
   * <strong>pg_tty()</strong>
   * <strong>pg_options()</strong>
   * <strong>pg_dbname()</strong>


id: pg_connect_poll
type: function
doc:
<comment>Description:</comment>
  Poll the status of an in-progress asynchronous PostgreSQL connection
     attempt
    
  
  <strong>pg_connect_poll()</strong> polls the status of a PostgreSQL connection created by calling <strong>pg_connect()</strong> with
  the <info>PGSQL_CONNECT_ASYNC</info> option.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.

<comment>Return:</comment>
  <info>int</info>  Returns <info>PGSQL_POLLING_FAILED</info>, <info>PGSQL_POLLING_READING</info>, <info>PGSQL_POLLING_WRITING</info>, <info>PGSQL_POLLING_OK</info>,
       or <info>PGSQL_POLLING_ACTIVE</info>.


id: pg_connection_busy
type: function
doc:
<comment>Description:</comment>
  Get connection is busy or not
    
  
  <strong>pg_connection_busy()</strong> determines whether or not a connection is busy.  If it is busy, a previous
  query is still executing. If <strong>pg_get_result()</strong> is used on the connection, it will be blocked.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the connection is busy, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>pg_connection_status()</strong>
   * <strong>pg_get_result()</strong>


id: pg_connection_reset
type: function
doc:
<comment>Description:</comment>
  Reset connection (reconnect)
    
  
  <strong>pg_connection_reset()</strong> resets the connection. It is useful for error recovery.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.

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

<comment>See Also:</comment>
   * <strong>pg_connect()</strong>
   * <strong>pg_pconnect()</strong>
   * <strong>pg_connection_status()</strong>


id: pg_connection_status
type: function
doc:
<comment>Description:</comment>
  Get connection status
    
  
  <strong>pg_connection_status()</strong> returns the status of the specified <strong>$connection</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.

<comment>Return:</comment>
  <info>int</info>  <info>PGSQL_CONNECTION_OK</info> or  <info>PGSQL_CONNECTION_BAD</info>.

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


id: pg_consume_input
type: function
doc:
<comment>Description:</comment>
  Reads input on the connection
  
  <strong>pg_consume_input()</strong> consumes any input waiting to be read from the database server.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if no error occurred, or <info>false</info> if there was an error. Note that <info>true</info> does not
        necessarily indicate that input was waiting to be read.


id: pg_convert
type: function
doc:
<comment>Description:</comment>
  Convert associative array values into forms suitable for SQL statements
    
  
  <strong>pg_convert()</strong> checks and converts the values in <strong>$values</strong> into suitable values for use in an SQL
  statement. Precondition for <strong>pg_convert()</strong> is the  existence of a table <strong>$table_name</strong> which has at
  least as many columns as <strong>$values</strong> has elements. The fieldnames in <strong>$table_name</strong> must match the
  indices in <strong>$values</strong> and the corresponding datatypes must be compatible. Returns an array with the
  converted values on success, <info>false</info> otherwise.
  
  Boolean values are accepted and converted to PostgreSQL booleans. String representations of
  boolean values are also supported. <info>null</info> is converted to PostgreSQL NULL.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$table_name</strong>  Name of the table against which to convert types.
  <info>array</info>             <strong>$values</strong>      Data to be converted.
  <info>int</info>               <strong>$flags</strong>       Any number of <info>PGSQL_CONV_IGNORE_DEFAULT</info>, <info>PGSQL_CONV_FORCE_NULL</info> or
                                 <info>PGSQL_CONV_IGNORE_NOT_NULL</info>, combined.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> of converted values,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>pg_meta_data()</strong>
   * <strong>pg_insert()</strong>
   * <strong>pg_select()</strong>
   * <strong>pg_update()</strong>
   * <strong>pg_delete()</strong>


id: pg_copy_from
type: function
doc:
<comment>Description:</comment>
  Insert records into a table from an array
    
  
  <strong>pg_copy_from()</strong> inserts records into a table from  <strong>$rows</strong>. It issues a <return>COPY FROM</return> SQL command
  internally to insert records.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$table_name</strong>  Name of the table into which to copy the <strong>$rows</strong>.
  <info>array</info>             <strong>$rows</strong>        An <info>array</info> of data to be copied into <strong>$table_name</strong>. Each value in <strong>$rows</strong>
                                 becomes a row in <strong>$table_name</strong>. Each value in <strong>$rows</strong> should be a
                                 delimited string of the values to insert into each field.  Values
                                 should be linefeed terminated.
  <info>string</info>            <strong>$separator</strong>   The token that separates values for each field in each element of
                                 <strong>$rows</strong>.  Default is <return>\t</return>.
  <info>string</info>            <strong>$null_as</strong>     How SQL <return>NULL</return> values are represented in the <strong>$rows</strong>.  Default is <return>\\N</return>
                                 (<return>"\\\\N"</return>).

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

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


id: pg_copy_to
type: function
doc:
<comment>Description:</comment>
  Copy a table to an array
    
  
  <strong>pg_copy_to()</strong> copies a table to an array. It issues <return>COPY TO</return> SQL command internally to retrieve
  records.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$table_name</strong>  Name of the table from which to copy the data into <strong>$rows</strong>.
  <info>string</info>            <strong>$separator</strong>   The token that separates values for each field in each element of
                                 <strong>$rows</strong>.  Default is <return>\t</return>.
  <info>string</info>            <strong>$null_as</strong>     How SQL <return>NULL</return> values are represented in the <strong>$rows</strong>.  Default is <return>\\N</return>
                                 (<return>"\\\\N"</return>).

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> with one element for each line of <return>COPY</return> data,  or <info>false</info> on failure.

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


id: pg_dbname
type: function
doc:
<comment>Description:</comment>
  Get the database name
  
  <strong>pg_dbname()</strong> returns the name of the database that the given PostgreSQL <strong>$connection</strong> instance.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the name of the database the  <strong>$connection</strong> is to.


id: pg_delete
type: function
doc:
<comment>Description:</comment>
  Deletes records
    
  
  <strong>pg_delete()</strong> deletes records from a table specified by the keys and values in <strong>$conditions</strong>.
  
  If <strong>$flags</strong> is specified, <strong>pg_convert()</strong> is applied to <strong>$conditions</strong> with the specified flags.
  
  By default <strong>pg_delete()</strong> passes raw values. Values must be escaped or the <info>PGSQL_DML_ESCAPE</info> flag must
  be specified in <strong>$flags</strong>. <info>PGSQL_DML_ESCAPE</info> quotes and escapes parameters/identifiers. Therefore,
  table/column names become case sensitive.
  
  Note that neither escape nor prepared query can protect LIKE query, JSON, Array, Regex, etc. These
  parameters should be handled according to their contexts. i.e. Escape/validate values.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$table_name</strong>  Name of the table from which to delete rows.
  <info>array</info>             <strong>$conditions</strong>  An <info>array</info> whose keys are field names in the table <strong>$table_name</strong>, and
                                 whose values are the values of those fields that are to be deleted.
  <info>int</info>               <strong>$flags</strong>       Any number of <info>PGSQL_CONV_FORCE_NULL</info>, <info>PGSQL_DML_NO_CONV</info>,
                                 <info>PGSQL_DML_ESCAPE</info>, <info>PGSQL_DML_EXEC</info>, <info>PGSQL_DML_ASYNC</info> or
                                 <info>PGSQL_DML_STRING</info> combined. If <info>PGSQL_DML_STRING</info> is part of the
                                 <strong>$flags</strong> then query string is returned. When <info>PGSQL_DML_NO_CONV</info> or
                                 <info>PGSQL_DML_ESCAPE</info> is set, it does not call <strong>pg_convert()</strong> internally.

<comment>Return:</comment>
  <info>string|bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.  Returns <info>string</info> if <info>PGSQL_DML_STRING</info> is
               passed via <strong>$flags</strong>.

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


id: pg_end_copy
type: function
doc:
<comment>Description:</comment>
  Sync with PostgreSQL backend
  
  <strong>pg_end_copy()</strong> syncs the PostgreSQL frontend (usually a web server process) with the PostgreSQL
  server after doing a copy operation performed by <strong>pg_put_line()</strong>. <strong>pg_end_copy()</strong> must be issued,
  otherwise the PostgreSQL server may get out of sync with the frontend and will report an error.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

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

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


id: pg_escape_bytea
type: function
doc:
<comment>Description:</comment>
  Escape a string for insertion into a bytea field
    
  
  <strong>pg_escape_bytea()</strong> escapes string for bytea datatype.  It returns escaped string.
  
  When you <return>SELECT</return> a bytea type, PostgreSQL returns octal byte values prefixed with '\' (e.g. \032).
  Users are supposed to convert back to binary format manually.
  
  This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea values must
  be cast when you enable multi-byte support. i.e. <return>INSERT INTO test_table (image) VALUES
  ('$image_escaped'::bytea);</return> PostgreSQL 7.2.2 or later does not need a cast. The exception is when
  the client and backend character encoding does not match, and there may be multi-byte stream
  error. User must then cast to bytea to avoid this error.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$data</strong>        A <info>string</info> containing text or binary data to be inserted into a bytea
                                 column.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the escaped data.

<comment>See Also:</comment>
   * <strong>pg_unescape_bytea()</strong>
   * <strong>pg_escape_string()</strong>


id: pg_escape_identifier
type: function
doc:
<comment>Description:</comment>
  Escape a identifier for insertion into a text field
    
  
  <strong>pg_escape_identifier()</strong> escapes a identifier (e.g. table, field names) for querying the database.
  It returns an escaped identifier string for PostgreSQL server. <strong>pg_escape_identifier()</strong> adds double
  quotes before and after data. Users should not add double quotes. Use of this function is
  recommended for identifier parameters in query. For SQL literals (i.e. parameters except bytea),
  <strong>pg_escape_literal()</strong> or <strong>pg_escape_string()</strong> must be used. For bytea type fields, <strong>pg_escape_bytea()</strong>
  must be used instead.
  
  This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$data</strong>        A <info>string</info> containing text to be escaped.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the escaped data.

<comment>See Also:</comment>
   * <strong>pg_escape_literal()</strong>
   * <strong>pg_escape_bytea()</strong>
   * <strong>pg_escape_string()</strong>


id: pg_escape_literal
type: function
doc:
<comment>Description:</comment>
  Escape a literal for insertion into a text field
    
  
  <strong>pg_escape_literal()</strong> escapes a literal for querying the PostgreSQL database. It returns an escaped
  literal in the PostgreSQL format. <strong>pg_escape_literal()</strong> adds quotes before and after data. Users
  should not add quotes. Use of this function is recommended instead of <strong>pg_escape_string()</strong>.  If the
  type of the column is bytea, <strong>pg_escape_bytea()</strong> must be used instead. For escaping identifiers
  (e.g. table, field names), <strong>pg_escape_identifier()</strong> must be used.
  
  This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$data</strong>        A <info>string</info> containing text to be escaped.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the escaped data.

<comment>See Also:</comment>
   * <strong>pg_escape_identifier()</strong>
   * <strong>pg_escape_bytea()</strong>
   * <strong>pg_escape_string()</strong>


id: pg_escape_string
type: function
doc:
<comment>Description:</comment>
  Escape a string for query
    
  
  <strong>pg_escape_string()</strong> escapes a string for querying the database.  It returns an escaped string in
  the PostgreSQL format without quotes. <strong>pg_escape_literal()</strong> is more preferred way to escape SQL
  parameters for PostgreSQL. <strong>addslashes()</strong> must not be used with PostgreSQL. If the type of the
  column is bytea, <strong>pg_escape_bytea()</strong> must be used instead. <strong>pg_escape_identifier()</strong> must be used to
  escape identifiers (e.g. table names, field names)
  
  This function requires PostgreSQL 7.2 or later.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$data</strong>        A <info>string</info> containing text to be escaped.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the escaped data.

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


id: pg_execute
type: function
doc:
<comment>Description:</comment>
  Sends a request to execute a prepared statement with given parameters, and waits for the result
  
  Sends a request to execute a prepared statement with given parameters, and  waits for the result.
  
  <strong>pg_execute()</strong> is like <strong>pg_query_params()</strong>,  but the command to be executed is  specified by naming a
  previously-prepared statement, instead of giving a  query string. This feature allows commands
  that will be used repeatedly to  be parsed and planned just once, rather than each time they are
  executed.  The statement must have been prepared previously in the current session.  <strong>pg_execute()</strong>
  is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier
  versions.
  
  The parameters are identical to <strong>pg_query_params()</strong>, except that the name of a  prepared statement
  is given instead of a query string.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$stmtname</strong>    The name of the prepared statement to execute.  if "" is specified,
                                 then the unnamed statement is executed.  The name must have been
                                 previously prepared using <strong>pg_prepare()</strong>,  <strong>pg_send_prepare()</strong> or a
                                 <return>PREPARE</return> SQL command.
  <info>array</info>             <strong>$params</strong>      An array of parameter values to substitute for the $1, $2, etc.
                                 placeholders in the original prepared query string.  The number of
                                 elements in the array must match the number of placeholders.
                                 
                                 Elements are converted to strings by calling this function.

<comment>Return:</comment>
  <info>PgSql\Result|false</info>  An <class>PgSql\Result</class> instance on success,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>pg_prepare()</strong>
   * <strong>pg_send_prepare()</strong>
   * <strong>pg_query_params()</strong>


id: pg_fetch_all
type: function
doc:
<comment>Description:</comment>
  Fetches all rows from a result as an array
  
  <strong>pg_fetch_all()</strong> returns an array that contains all rows (records) in the <class>PgSql\Result</class> instance.
  
  This function sets NULL fields to
  the PHP <info>null</info> value.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$mode</strong>    An optional parameter that controls how the returned <info>array</info> is indexed.
                         <strong>$mode</strong> is a constant and can take the following values:
                         <info>PGSQL_ASSOC</info>, <info>PGSQL_NUM</info> and <info>PGSQL_BOTH</info>.
                         Using <info>PGSQL_NUM</info>, the function will return an array with numerical indices,
                         using <info>PGSQL_ASSOC</info> it will return only associative indices
                         while <info>PGSQL_BOTH</info> will return both numerical and associative indices.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> with all rows in the result.  Each row is an array of field values indexed by
         field name.

<comment>See Also:</comment>
   * <strong>pg_fetch_row()</strong>
   * <strong>pg_fetch_array()</strong>
   * <strong>pg_fetch_object()</strong>
   * <strong>pg_fetch_result()</strong>


id: pg_fetch_all_columns
type: function
doc:
<comment>Description:</comment>
  Fetches all rows in a particular result column as an array
  
  <strong>pg_fetch_all_columns()</strong> returns an array that contains all rows (records) in a particular column of
  the <class>PgSql\Result</class> instance.
  
  This function sets NULL fields to
  the PHP <info>null</info> value.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$field</strong>   Column number. Defaults to the first column if not specified.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> with all values in the result column.

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


id: pg_fetch_array
type: function
doc:
<comment>Description:</comment>
  Fetch a row as an array
  
  <strong>pg_fetch_array()</strong> returns an array that corresponds to the fetched row (record).
  
  <strong>pg_fetch_array()</strong> is an extended version of <strong>pg_fetch_row()</strong>.  In addition to storing the data in the
  numeric indices (field number) to the result array, it can also store the data using associative
  indices (field name). It stores both indices by default.
  
  This function sets NULL fields to
  the PHP <info>null</info> value.
  
  <strong>pg_fetch_array()</strong> is NOT significantly slower than using <strong>pg_fetch_row()</strong>, and is significantly
  easier to use.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int|null</info>      <strong>$row</strong>     Row number in result to fetch. Rows are numbered from 0 upwards. If omitted
                         or <info>null</info>, the next row is fetched.
  <info>int</info>           <strong>$mode</strong>    An optional parameter that controls how the returned <info>array</info> is indexed.
                         <strong>$mode</strong> is a constant and can take the following values:
                         <info>PGSQL_ASSOC</info>, <info>PGSQL_NUM</info> and <info>PGSQL_BOTH</info>.
                         Using <info>PGSQL_NUM</info>, the function will return an array with numerical indices,
                         using <info>PGSQL_ASSOC</info> it will return only associative indices
                         while <info>PGSQL_BOTH</info> will return both numerical and associative indices.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> indexed numerically (beginning with 0) or associatively (indexed by field
               name), or both. Each value in the <info>array</info> is represented as a  <info>string</info>.  Database <return>NULL</return>
               values are returned as <info>null</info>.
               
               <info>false</info> is returned if <strong>$row</strong> exceeds the number of rows in the set, there are no more
               rows, or on any other error. Fetching from the result of a query other than SELECT
               will also return <info>false</info>.

<comment>See Also:</comment>
   * <strong>pg_fetch_row()</strong>
   * <strong>pg_fetch_object()</strong>
   * <strong>pg_fetch_result()</strong>


id: pg_fetch_assoc
type: function
doc:
<comment>Description:</comment>
  Fetch a row as an associative array
  
  <strong>pg_fetch_assoc()</strong> returns an associative array that corresponds to the fetched row (records).
  
  <strong>pg_fetch_assoc()</strong> is equivalent to calling <strong>pg_fetch_array()</strong> with <info>PGSQL_ASSOC</info> as the optional third
  parameter. It only returns an associative array. If you need the numeric indices, use
  <strong>pg_fetch_row()</strong>.
  
  This function sets NULL fields to
  the PHP <info>null</info> value.
  
  <strong>pg_fetch_assoc()</strong> is NOT significantly slower than using <strong>pg_fetch_row()</strong>, and is significantly
  easier to use.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int|null</info>      <strong>$row</strong>     Row number in result to fetch. Rows are numbered from 0 upwards. If omitted
                         or <info>null</info>, the next row is fetched.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> indexed associatively (by field name). Each value in the <info>array</info> is
               represented as a  <info>string</info>.  Database <return>NULL</return> values are returned as <info>null</info>.
               
               <info>false</info> is returned if <strong>$row</strong> exceeds the number of rows in the set, there are no more
               rows, or on any other error.

<comment>See Also:</comment>
   * <strong>pg_fetch_row()</strong>
   * <strong>pg_fetch_array()</strong>
   * <strong>pg_fetch_object()</strong>
   * <strong>pg_fetch_result()</strong>


id: pg_fetch_object
type: function
doc:
<comment>Description:</comment>
  Fetch a row as an object
  
  <strong>pg_fetch_object()</strong> returns an object with properties that correspond to the fetched row's field
  names.  It can optionally instantiate an object of a specific class, and pass parameters to that
  class's constructor.
  
  This function sets NULL fields to
  the PHP <info>null</info> value.
  
  Speed-wise, the function is identical to <strong>pg_fetch_array()</strong>, and almost as fast as <strong>pg_fetch_row()</strong>
  (the difference is insignificant).

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>            An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                                   <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int|null</info>      <strong>$row</strong>               Row number in result to fetch. Rows are numbered from 0 upwards.
                                   If omitted or <info>null</info>, the next row is fetched.
  <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|false</info>  An <info>object</info> with one attribute for each field name in the result.  Database <return>NULL</return>
                values are returned as <info>null</info>.
                
                <info>false</info> is returned if <strong>$row</strong> exceeds the number of rows in the set, there are no more
                rows, or on any other error.

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_fetch_array()</strong>
   * <strong>pg_fetch_assoc()</strong>
   * <strong>pg_fetch_row()</strong>
   * <strong>pg_fetch_result()</strong>


id: pg_fetch_result
type: function
doc:
<comment>Description:</comment>
  Returns values from a result instance
  
  <strong>pg_fetch_result()</strong> returns the value of a particular row and field (column) in an <class>PgSql\Result</class>
  instance.
  
  This function used to be called <strong>pg_result()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$row</strong>     Row number in result to fetch.  Rows are numbered from 0 upwards.  If
                         omitted, next row is fetched.
  <info>mixed</info>         <strong>$field</strong>   A <info>string</info> representing the name of the field (column) to fetch, otherwise an
                         <info>int</info> representing the field number to fetch.  Fields are numbered from 0
                         upwards.

<comment>Return:</comment>
  <info>string|false|null</info>  Boolean is returned as "t" or "f".  All other types, including arrays are
                     returned as strings formatted in the same default PostgreSQL manner that you
                     would see in the psql program.  Database <return>NULL</return> values are returned as <info>null</info>.
                     
                     <info>false</info> is returned if <strong>$row</strong> exceeds the number of rows in the set, or on any
                     other error.

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_fetch_array()</strong>


id: pg_fetch_row
type: function
doc:
<comment>Description:</comment>
  Get a row as an enumerated array
  
  <strong>pg_fetch_row()</strong> fetches one row of data from the result associated with the specified <strong>$result</strong>
  instance.
  
  This function sets NULL fields to
  the PHP <info>null</info> value.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int|null</info>      <strong>$row</strong>     Row number in result to fetch. Rows are numbered from 0 upwards. If omitted
                         or <info>null</info>, the next row is fetched.
  <info>int</info>           <strong>$mode</strong>    An optional parameter that controls how the returned <info>array</info> is indexed.
                         <strong>$mode</strong> is a constant and can take the following values:
                         <info>PGSQL_ASSOC</info>, <info>PGSQL_NUM</info> and <info>PGSQL_BOTH</info>.
                         Using <info>PGSQL_NUM</info>, the function will return an array with numerical indices,
                         using <info>PGSQL_ASSOC</info> it will return only associative indices
                         while <info>PGSQL_BOTH</info> will return both numerical and associative indices.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info>, indexed from 0 upwards, with each value represented as a <info>string</info>.  Database
               <return>NULL</return> values are returned as <info>null</info>.
               
               <info>false</info> is returned if <strong>$row</strong> exceeds the number of rows in the set, there are no more
               rows, or on any other error.

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_fetch_array()</strong>
   * <strong>pg_fetch_object()</strong>
   * <strong>pg_fetch_result()</strong>


id: pg_field_is_null
type: function
doc:
<comment>Description:</comment>
  Test if a field is SQL NULL
  
  <strong>pg_field_is_null()</strong> tests if a field in an <class>PgSql\Result</class> instance is SQL <return>NULL</return> or not.
  
  This function used to be called <strong>pg_fieldisnull()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$row</strong>     Row number in result to fetch.  Rows are numbered from 0 upwards.  If
                         omitted, current row is fetched.
  <info>mixed</info>         <strong>$field</strong>   Field number (starting from 0) as an <info>int</info> or  the field name as a <info>string</info>.

<comment>Return:</comment>
  <info>int</info>  Returns <return>1</return> if the field in the given row is SQL <return>NULL</return>, <return>0</return> if not.  <info>false</info> is returned if the row
       is out of range, or upon any other error.


id: pg_field_name
type: function
doc:
<comment>Description:</comment>
  Returns the name of a field
  
  <strong>pg_field_name()</strong> returns the name of the field occupying the given <strong>$field</strong> in the given <strong>$result</strong>
  instance.  Field numbering starts from 0.
  
  This function used to be called <strong>pg_fieldname()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$field</strong>   Field number, starting from 0.

<comment>Return:</comment>
  <info>string</info>  The field name.

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


id: pg_field_num
type: function
doc:
<comment>Description:</comment>
  Returns the field number of the named field
  
  <strong>pg_field_num()</strong> will return the number of the field number that corresponds to the <strong>$field</strong> in the
  given <strong>$result</strong> instance.
  
  This function used to be called <strong>pg_fieldnum()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>string</info>        <strong>$field</strong>   The name of the field. The given name is treated like an identifier in an
                         SQL command, that is, it is downcased unless double-quoted.

<comment>Return:</comment>
  <info>int</info>  The field number (numbered from 0), or -1 on error.

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


id: pg_field_prtlen
type: function
doc:
<comment>Description:</comment>
  Returns the printed length
  
  <strong>pg_field_prtlen()</strong> returns the actual printed length (number of characters) of a specific value in
  a PostgreSQL <strong>$result</strong>.  Row numbering starts at 0.  This function will return <info>false</info> on an error.
  
  <strong>$field_name_or_number</strong> can be passed either as an <info>int</info> or as a <info>string</info>. If it is passed as an <info>int</info>,
  PHP recognises it as the field number, otherwise as field name.
  
  See the example given at the <strong>pg_field_name()</strong> page.
  
  This function used to be called <strong>pg_fieldprtlen()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info></info>              <strong>$row</strong>     Row number in result.  Rows are numbered from 0 upwards.  If omitted,
                         current row is fetched.

<comment>Return:</comment>
  <info>int</info>  The field printed length.

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


id: pg_field_size
type: function
doc:
<comment>Description:</comment>
  Returns the internal storage size of the named field
    
  
  <strong>pg_field_size()</strong> returns the internal storage size (in bytes) of the field number in the given
  PostgreSQL <strong>$result</strong>.
  
  This function used to be called <strong>pg_fieldsize()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$field</strong>   Field number, starting from 0.

<comment>Return:</comment>
  <info>int</info>  The internal field storage size (in bytes).  -1 indicates a variable length field.

<comment>See Also:</comment>
   * <strong>pg_field_prtlen()</strong>
   * <strong>pg_field_type()</strong>


id: pg_field_table
type: function
doc:
<comment>Description:</comment>
  Returns the name or oid of the tables field
  
  <strong>pg_field_table()</strong> returns the name of the table that field  belongs to, or the table's oid if
  <strong>$oid_only</strong> is <info>true</info>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>    An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                           <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$field</strong>     Field number, starting from 0.
  <info>bool</info>          <strong>$oid_only</strong>  By default the tables name that field belongs to is returned but if
                           <strong>$oid_only</strong> is set to <info>true</info>, then the oid will instead be returned.

<comment>Return:</comment>
  <info>string|int|false</info>  On success either the fields table name or oid,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>pg_field_name()</strong>
   * <strong>pg_field_type()</strong>


