From 80d3db1dcf8fe9ca66d4e3f2e2116d3bc39ae2b4 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 12 Jul 2022 22:26:21 +0300 Subject: upgrade idiorm to php8.1-patched version (aaronpk/idiorm) --- vendor/thecodingmachine/safe/generated/pgsql.php | 986 ++++++----------------- 1 file changed, 234 insertions(+), 752 deletions(-) (limited to 'vendor/thecodingmachine/safe/generated/pgsql.php') diff --git a/vendor/thecodingmachine/safe/generated/pgsql.php b/vendor/thecodingmachine/safe/generated/pgsql.php index 007faacbb..14b5548de 100644 --- a/vendor/thecodingmachine/safe/generated/pgsql.php +++ b/vendor/thecodingmachine/safe/generated/pgsql.php @@ -10,7 +10,7 @@ use Safe\Exceptions\PgsqlException; * or pg_send_execute. You cannot cancel a query executed using * pg_query. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @throws PgsqlException * */ @@ -24,65 +24,6 @@ function pg_cancel_query($connection): void } -/** - * PostgreSQL supports automatic character set conversion between - * server and client for certain character sets. - * pg_client_encoding returns the client - * encoding as a string. The returned string will be one of the - * standard PostgreSQL encoding identifiers. - * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. - * @return string The client encoding. - * @throws PgsqlException - * - */ -function pg_client_encoding($connection = null): string -{ - error_clear_last(); - if ($connection !== null) { - $result = \pg_client_encoding($connection); - } else { - $result = \pg_client_encoding(); - } - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } - return $result; -} - - -/** - * pg_close closes the non-persistent - * connection to a PostgreSQL database associated with the given - * connection resource. - * - * If there is open large object resource on the connection, do not - * close the connection before closing all large object resources. - * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. - * @throws PgsqlException - * - */ -function pg_close($connection = null): void -{ - error_clear_last(); - if ($connection !== null) { - $result = \pg_close($connection); - } else { - $result = \pg_close(); - } - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } -} - - /** * pg_connect opens a connection to a * PostgreSQL database specified by the @@ -92,7 +33,7 @@ function pg_close($connection = null): void * the same connection_string as an existing connection, the * existing connection will be returned unless you pass * PGSQL_CONNECT_FORCE_NEW as - * connect_type. + * flags. * * The old syntax with multiple parameters * $conn = pg_connect("host", "port", "options", "tty", "dbname") @@ -118,7 +59,7 @@ function pg_close($connection = null): void * * The options parameter can be used to set command line parameters * to be invoked by the server. - * @param int $connect_type If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection + * @param int $flags If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection * is created, even if the connection_string is identical to * an existing connection. * @@ -126,18 +67,14 @@ function pg_close($connection = null): void * connection is established asynchronously. The state of the connection * can then be checked via pg_connect_poll or * pg_connection_status. - * @return resource PostgreSQL connection resource on success, FALSE on failure. + * @return resource Returns an PgSql\Connection instance on success. * @throws PgsqlException * */ -function pg_connect(string $connection_string, int $connect_type = null) +function pg_connect(string $connection_string, int $flags = 0) { error_clear_last(); - if ($connect_type !== null) { - $result = \pg_connect($connection_string, $connect_type); - } else { - $result = \pg_connect($connection_string); - } + $result = \pg_connect($connection_string, $flags); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -149,7 +86,7 @@ function pg_connect(string $connection_string, int $connect_type = null) * pg_connection_reset resets the connection. * It is useful for error recovery. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @throws PgsqlException * */ @@ -165,29 +102,29 @@ function pg_connection_reset($connection): void /** * pg_convert checks and converts the values in - * assoc_array into suitable values for use in an SQL + * values into suitable values for use in an SQL * statement. Precondition for pg_convert is the * existence of a table table_name which has at least - * as many columns as assoc_array has elements. The + * as many columns as values has elements. The * fieldnames in table_name must match the indices in - * assoc_array and the corresponding datatypes must be + * values and the corresponding datatypes must be * compatible. Returns an array with the converted values on success, FALSE * otherwise. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @param string $table_name Name of the table against which to convert types. - * @param array $assoc_array Data to be converted. - * @param int $options Any number of PGSQL_CONV_IGNORE_DEFAULT, + * @param array $values Data to be converted. + * @param int $flags Any number of PGSQL_CONV_IGNORE_DEFAULT, * PGSQL_CONV_FORCE_NULL or * PGSQL_CONV_IGNORE_NOT_NULL, combined. * @return array An array of converted values. * @throws PgsqlException * */ -function pg_convert($connection, string $table_name, array $assoc_array, int $options = 0): array +function pg_convert($connection, string $table_name, array $values, int $flags = 0): array { error_clear_last(); - $result = \pg_convert($connection, $table_name, $assoc_array, $options); + $result = \pg_convert($connection, $table_name, $values, $flags); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -200,29 +137,23 @@ function pg_convert($connection, string $table_name, array $assoc_array, int $op * rows. It issues a COPY FROM SQL command * internally to insert records. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @param string $table_name Name of the table into which to copy the rows. * @param array $rows An array of data to be copied into table_name. * Each value in rows becomes a row in table_name. * Each value in rows should be a delimited string of the values * to insert into each field. Values should be linefeed terminated. - * @param string $delimiter The token that separates values for each field in each element of - * rows. Default is TAB. + * @param string $separator The token that separates values for each field in each element of + * rows. Default is \t. * @param string $null_as How SQL NULL values are represented in the - * rows. Default is \N ("\\N"). + * rows. Default is \\N ("\\\\N"). * @throws PgsqlException * */ -function pg_copy_from($connection, string $table_name, array $rows, string $delimiter = null, string $null_as = null): void +function pg_copy_from($connection, string $table_name, array $rows, string $separator = "\t", string $null_as = "\\\\N"): void { error_clear_last(); - if ($null_as !== null) { - $result = \pg_copy_from($connection, $table_name, $rows, $delimiter, $null_as); - } elseif ($delimiter !== null) { - $result = \pg_copy_from($connection, $table_name, $rows, $delimiter); - } else { - $result = \pg_copy_from($connection, $table_name, $rows); - } + $result = \pg_copy_from($connection, $table_name, $rows, $separator, $null_as); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -234,56 +165,20 @@ function pg_copy_from($connection, string $table_name, array $rows, string $deli * issues COPY TO SQL command internally to * retrieve records. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @param string $table_name Name of the table from which to copy the data into rows. - * @param string $delimiter The token that separates values for each field in each element of - * rows. Default is TAB. + * @param string $separator The token that separates values for each field in each element of + * rows. Default is \t. * @param string $null_as How SQL NULL values are represented in the - * rows. Default is \N ("\\N"). + * rows. Default is \\N ("\\\\N"). * @return array An array with one element for each line of COPY data. - * It returns FALSE on failure. * @throws PgsqlException * */ -function pg_copy_to($connection, string $table_name, string $delimiter = null, string $null_as = null): array +function pg_copy_to($connection, string $table_name, string $separator = "\t", string $null_as = "\\\\N"): array { error_clear_last(); - if ($null_as !== null) { - $result = \pg_copy_to($connection, $table_name, $delimiter, $null_as); - } elseif ($delimiter !== null) { - $result = \pg_copy_to($connection, $table_name, $delimiter); - } else { - $result = \pg_copy_to($connection, $table_name); - } - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } - return $result; -} - - -/** - * pg_dbname returns the name of the database - * that the given PostgreSQL connection - * resource. - * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. - * @return string A string containing the name of the database the - * connection is to. - * @throws PgsqlException - * - */ -function pg_dbname($connection = null): string -{ - error_clear_last(); - if ($connection !== null) { - $result = \pg_dbname($connection); - } else { - $result = \pg_dbname(); - } + $result = \pg_copy_to($connection, $table_name, $separator, $null_as); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -293,46 +188,43 @@ function pg_dbname($connection = null): string /** * pg_delete deletes records from a table - * specified by the keys and values - * in assoc_array. If options - * is specified, pg_convert is applied - * to assoc_array with the specified options. + * specified by the keys and values in conditions. * - * If options is specified, + * If flags is specified, * pg_convert is applied to - * assoc_array with the specified flags. + * conditions with the specified flags. * - * By default pg_delete passes raw values. Values - * must be escaped or PGSQL_DML_ESCAPE option must be - * specified. PGSQL_DML_ESCAPE quotes and escapes - * parameters/identifiers. Therefore, table/column names became case - * sensitive. + * By default pg_delete passes raw values. + * Values must be escaped or the PGSQL_DML_ESCAPE flag + * must be specified in flags. + * PGSQL_DML_ESCAPE 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. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @param string $table_name Name of the table from which to delete rows. - * @param array $assoc_array An array whose keys are field names in the table table_name, + * @param array $conditions An array whose keys are field names in the table table_name, * and whose values are the values of those fields that are to be deleted. - * @param int $options Any number of PGSQL_CONV_FORCE_NULL, + * @param int $flags Any number of PGSQL_CONV_FORCE_NULL, * PGSQL_DML_NO_CONV, * PGSQL_DML_ESCAPE, * PGSQL_DML_EXEC, * PGSQL_DML_ASYNC or * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the - * options then query string is returned. When PGSQL_DML_NO_CONV + * flags then query string is returned. When PGSQL_DML_NO_CONV * or PGSQL_DML_ESCAPE is set, it does not call pg_convert internally. * @return mixed Returns TRUE on success. Returns string if PGSQL_DML_STRING is passed - * via options. + * via flags. * @throws PgsqlException * */ -function pg_delete($connection, string $table_name, array $assoc_array, int $options = PGSQL_DML_EXEC) +function pg_delete($connection, string $table_name, array $conditions, int $flags = PGSQL_DML_EXEC) { error_clear_last(); - $result = \pg_delete($connection, $table_name, $assoc_array, $options); + $result = \pg_delete($connection, $table_name, $conditions, $flags); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -348,10 +240,11 @@ function pg_delete($connection, string $table_name, array $assoc_array, int $opt * must be issued, otherwise the PostgreSQL server may get out of * sync with the frontend and will report an error. * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is NULL, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @throws PgsqlException * */ @@ -385,10 +278,11 @@ function pg_end_copy($connection = null): void * The parameters are identical to pg_query_params, except that the name of a * prepared statement is given instead of a query string. * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is unspecified, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @param string $stmtname 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 pg_prepare, @@ -399,7 +293,7 @@ function pg_end_copy($connection = null): void * must match the number of placeholders. * * Elements are converted to strings by calling this function. - * @return resource A query result resource on success. + * @return resource An PgSql\Result instance on success. * @throws PgsqlException * */ @@ -422,74 +316,24 @@ function pg_execute($connection = null, string $stmtname = null, array $params = } -/** - * pg_field_name returns the name of the field - * occupying the given field_number in the - * given PostgreSQL result resource. Field - * numbering starts from 0. - * - * @param resource $result PostgreSQL query result resource, returned by pg_query, - * pg_query_params or pg_execute - * (among others). - * @param int $field_number Field number, starting from 0. - * @return string The field name. - * @throws PgsqlException - * - */ -function pg_field_name($result, int $field_number): string -{ - error_clear_last(); - $result = \pg_field_name($result, $field_number); - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } - return $result; -} - - /** * pg_field_table returns the name of the table that field * belongs to, or the table's oid if oid_only is TRUE. * - * @param resource $result PostgreSQL query result resource, returned by pg_query, - * pg_query_params or pg_execute - * (among others). - * @param int $field_number Field number, starting from 0. + * @param resource $result An PgSql\Result instance, returned by pg_query, + * pg_query_params or pg_execute(among others). + * @param int $field Field number, starting from 0. * @param bool $oid_only By default the tables name that field belongs to is returned but * if oid_only is set to TRUE, then the * oid will instead be returned. - * @return mixed On success either the fields table name or oid. Or, FALSE on failure. - * @throws PgsqlException - * - */ -function pg_field_table($result, int $field_number, bool $oid_only = false) -{ - error_clear_last(); - $result = \pg_field_table($result, $field_number, $oid_only); - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } - return $result; -} - - -/** - * pg_field_type returns a string containing the - * base type name of the given field_number in the - * given PostgreSQL result resource. - * - * @param resource $result PostgreSQL query result resource, returned by pg_query, - * pg_query_params or pg_execute - * (among others). - * @param int $field_number Field number, starting from 0. - * @return string A string containing the base name of the field's type. + * @return mixed On success either the fields table name or oid. * @throws PgsqlException * */ -function pg_field_type($result, int $field_number): string +function pg_field_table($result, int $field, bool $oid_only = false) { error_clear_last(); - $result = \pg_field_type($result, $field_number); + $result = \pg_field_table($result, $field, $oid_only); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -501,7 +345,7 @@ function pg_field_type($result, int $field_number): string * pg_flush flushes any outbound query data waiting to be * sent on the connection. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @return mixed Returns TRUE if the flush was successful or no data was waiting to be * flushed, 0 if part of the pending data was flushed but * more remains. @@ -521,15 +365,14 @@ function pg_flush($connection) /** * pg_free_result frees the memory and data associated with the - * specified PostgreSQL query result resource. + * specified PgSql\Result instance. * * This function need only be called if memory * consumption during script execution is a problem. Otherwise, all result memory will * be automatically freed when the script ends. * - * @param resource $result PostgreSQL query result resource, returned by pg_query, - * pg_query_params or pg_execute - * (among others). + * @param resource $result An PgSql\Result instance, returned by pg_query, + * pg_query_params or pg_execute(among others). * @throws PgsqlException * */ @@ -545,13 +388,14 @@ function pg_free_result($result): void /** * pg_host returns the host name of the given - * PostgreSQL connection resource is + * PostgreSQL connection instance is * connected to. * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is NULL, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @return string A string containing the name of the host the * connection is to. * @throws PgsqlException @@ -565,7 +409,7 @@ function pg_host($connection = null): string } else { $result = \pg_host(); } - if ($result === false) { + if ($result === '') { throw PgsqlException::createFromPhpError(); } return $result; @@ -574,124 +418,45 @@ function pg_host($connection = null): string /** * pg_insert inserts the values - * of assoc_array into the table specified - * by table_name. If options - * is specified, pg_convert is applied - * to assoc_array with the specified options. + * of values into the table specified + * by table_name. * - * If options is specified, + * If flags is specified, * pg_convert is applied to - * assoc_array with the specified flags. + * values with the specified flags. * - * By default pg_insert passes raw values. Values - * must be escaped or PGSQL_DML_ESCAPE option must be - * specified. PGSQL_DML_ESCAPE quotes and escapes - * parameters/identifiers. Therefore, table/column names became case - * sensitive. + * By default pg_insert passes raw values. + * Values must be escaped or the PGSQL_DML_ESCAPE flag + * must be specified in flags. + * PGSQL_DML_ESCAPE 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. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @param string $table_name Name of the table into which to insert rows. The table table_name must at least - * have as many columns as assoc_array has elements. - * @param array $assoc_array An array whose keys are field names in the table table_name, + * have as many columns as values has elements. + * @param array $values An array whose keys are field names in the table table_name, * and whose values are the values of those fields that are to be inserted. - * @param int $options Any number of PGSQL_CONV_OPTS, + * @param int $flags Any number of PGSQL_CONV_OPTS, * PGSQL_DML_NO_CONV, * PGSQL_DML_ESCAPE, * PGSQL_DML_EXEC, * PGSQL_DML_ASYNC or * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the - * options then query string is returned. When PGSQL_DML_NO_CONV + * flags then query string is returned. When PGSQL_DML_NO_CONV * or PGSQL_DML_ESCAPE is set, it does not call pg_convert internally. - * @return mixed Returns the connection resource on success. Returns string if PGSQL_DML_STRING is passed - * via options. - * @throws PgsqlException - * - */ -function pg_insert($connection, string $table_name, array $assoc_array, int $options = PGSQL_DML_EXEC) -{ - error_clear_last(); - $result = \pg_insert($connection, $table_name, $assoc_array, $options); - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } - return $result; -} - - -/** - * pg_last_error returns the last error message - * for a given connection. - * - * Error messages may be overwritten by internal PostgreSQL (libpq) - * function calls. It may not return an appropriate error message if - * multiple errors occur inside a PostgreSQL module function. - * - * Use pg_result_error, pg_result_error_field, - * pg_result_status and - * pg_connection_status for better error handling. - * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. - * @return string A string containing the last error message on the - * given connection. + * @return mixed Returns TRUE on success.. Or returns a string on success if PGSQL_DML_STRING is passed + * via flags. * @throws PgsqlException * */ -function pg_last_error($connection = null): string +function pg_insert($connection, string $table_name, array $values, int $flags = PGSQL_DML_EXEC) { error_clear_last(); - if ($connection !== null) { - $result = \pg_last_error($connection); - } else { - $result = \pg_last_error(); - } - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } - return $result; -} - - -/** - * pg_last_notice returns the last notice - * message from the PostgreSQL server on the specified - * connection. The PostgreSQL server sends notice - * messages in several cases, for instance when creating a SERIAL - * column in a table. - * - * With pg_last_notice, you can avoid issuing useless - * queries by checking whether or not the notice is related to your transaction. - * - * Notice message tracking can be set to optional by setting 1 for - * pgsql.ignore_notice in php.ini. - * - * Notice message logging can be set to optional by setting 0 for - * pgsql.log_notice in php.ini. - * Unless pgsql.ignore_notice is set - * to 0, notice message cannot be logged. - * - * @param resource $connection PostgreSQL database connection resource. - * @param int $option One of PGSQL_NOTICE_LAST (to return last notice), - * PGSQL_NOTICE_ALL (to return all notices), - * or PGSQL_NOTICE_CLEAR (to clear notices). - * @return string A string containing the last notice on the - * given connection with - * PGSQL_NOTICE_LAST, - * an array with PGSQL_NOTICE_ALL, - * a boolean with PGSQL_NOTICE_CLEAR. - * @throws PgsqlException - * - */ -function pg_last_notice($connection, int $option = PGSQL_NOTICE_LAST): string -{ - error_clear_last(); - $result = \pg_last_notice($connection, $option); + $result = \pg_insert($connection, $table_name, $values, $flags); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -719,10 +484,9 @@ function pg_last_notice($connection, int $option = PGSQL_NOTICE_LAST): string * the value of the most recently used sequence in the session. This avoids * the need for naming the sequence, table or column altogether. * - * @param resource $result PostgreSQL query result resource, returned by pg_query, - * pg_query_params or pg_execute - * (among others). - * @return string A string containing the OID assigned to the most recently inserted + * @param resource $result An PgSql\Result instance, returned by pg_query, + * pg_query_params or pg_execute(among others). + * @return string An int or string containing the OID assigned to the most recently inserted * row in the specified connection or * no available OID. * @throws PgsqlException @@ -740,21 +504,19 @@ function pg_last_oid($result): string /** - * pg_lo_close closes a large - * object. large_object is a resource for the - * large object from pg_lo_open. + * pg_lo_close closes a large object. * * To use the large object interface, it is necessary to * enclose it within a transaction block. * - * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open. + * @param resource $lob An PgSql\Lob instance, returned by pg_lo_open. * @throws PgsqlException * */ -function pg_lo_close($large_object): void +function pg_lo_close($lob): void { error_clear_last(); - $result = \pg_lo_close($large_object); + $result = \pg_lo_close($lob); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -769,10 +531,11 @@ function pg_lo_close($large_object): void * To use the large object interface, it is necessary to * enclose it within a transaction block. * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is unspecified, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @param int $oid The OID of the large object in the database. * @param string $pathname The full path and file name of the file in which to write the * large object on the client filesystem. @@ -805,16 +568,17 @@ function pg_lo_export($connection = null, int $oid = null, string $pathname = nu * To use the large object interface, it is necessary to * enclose it within a transaction block. * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is unspecified, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @param string $pathname The full path and file name of the file on the client * filesystem from which to read the large object data. - * @param mixed $object_id If an object_id is given the function + * @param $object_id If an object_id is given the function * will try to create a large object with this id, else a free * object id is assigned by the server. The parameter - * was added in PHP 5.3 and relies on functionality that first + * relies on functionality that first * appeared in PostgreSQL 8.1. * @return int The OID of the newly created large object. * @throws PgsqlException @@ -841,19 +605,20 @@ function pg_lo_import($connection = null, string $pathname = null, $object_id = /** * pg_lo_open opens a large object in the database - * and returns large object resource so that it can be manipulated. + * and returns an PgSql\Lob instance so that it can be manipulated. * * To use the large object interface, it is necessary to * enclose it within a transaction block. * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is unspecified, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @param int $oid The OID of the large object in the database. * @param string $mode Can be either "r" for read-only, "w" for write only or "rw" for read and * write. - * @return resource A large object resource. + * @return resource An PgSql\Lob instance. * @throws PgsqlException * */ @@ -868,50 +633,25 @@ function pg_lo_open($connection, int $oid, string $mode) } -/** - * pg_lo_read_all reads a large object and passes - * it straight through to the browser after sending all pending - * headers. Mainly intended for sending binary data like images or - * sound. - * - * To use the large object interface, it is necessary to - * enclose it within a transaction block. - * - * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open. - * @return int Number of bytes read. - * @throws PgsqlException - * - */ -function pg_lo_read_all($large_object): int -{ - error_clear_last(); - $result = \pg_lo_read_all($large_object); - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } - return $result; -} - - /** * pg_lo_read reads at most - * len bytes from a large object and + * length bytes from a large object and * returns it as a string. * * To use the large object interface, it is necessary to * enclose it within a transaction block. * - * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open. - * @param int $len An optional maximum number of bytes to return. - * @return string A string containing len bytes from the + * @param resource $lob An PgSql\Lob instance, returned by pg_lo_open. + * @param int $length An optional maximum number of bytes to return. + * @return string A string containing length bytes from the * large object. * @throws PgsqlException * */ -function pg_lo_read($large_object, int $len = 8192): string +function pg_lo_read($lob, int $length = 8192): string { error_clear_last(); - $result = \pg_lo_read($large_object, $len); + $result = \pg_lo_read($lob, $length); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -920,13 +660,12 @@ function pg_lo_read($large_object, int $len = 8192): string /** - * pg_lo_seek seeks a position within a large object - * resource. + * pg_lo_seek seeks a position within an PgSql\Lob instance. * * To use the large object interface, it is necessary to * enclose it within a transaction block. * - * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open. + * @param resource $lob An PgSql\Lob instance, returned by pg_lo_open. * @param int $offset The number of bytes to seek. * @param int $whence One of the constants PGSQL_SEEK_SET (seek from object start), * PGSQL_SEEK_CUR (seek from current position) @@ -934,10 +673,10 @@ function pg_lo_read($large_object, int $len = 8192): string * @throws PgsqlException * */ -function pg_lo_seek($large_object, int $offset, int $whence = PGSQL_SEEK_CUR): void +function pg_lo_seek($lob, int $offset, int $whence = SEEK_CUR): void { error_clear_last(); - $result = \pg_lo_seek($large_object, $offset, $whence); + $result = \pg_lo_seek($lob, $offset, $whence); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -945,21 +684,20 @@ function pg_lo_seek($large_object, int $offset, int $whence = PGSQL_SEEK_CUR): v /** - * pg_lo_truncate truncates a large object - * resource. + * pg_lo_truncate truncates an PgSql\Lob instance. * * To use the large object interface, it is necessary to * enclose it within a transaction block. * - * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open. + * @param resource $lob An PgSql\Lob instance, returned by pg_lo_open. * @param int $size The number of bytes to truncate. * @throws PgsqlException * */ -function pg_lo_truncate($large_object, int $size): void +function pg_lo_truncate($lob, int $size): void { error_clear_last(); - $result = \pg_lo_truncate($large_object, $size); + $result = \pg_lo_truncate($lob, $size); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -973,10 +711,11 @@ function pg_lo_truncate($large_object, int $size): void * To use the large object interface, it is necessary to * enclose it within a transaction block. * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is unspecified, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @param int $oid The OID of the large object in the database. * @throws PgsqlException * @@ -998,24 +737,24 @@ function pg_lo_unlink($connection, int $oid): void * To use the large object interface, it is necessary to * enclose it within a transaction block. * - * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open. - * @param string $data The data to be written to the large object. If len is - * specified and is less than the length of data, only - * len bytes will be written. - * @param int $len An optional maximum number of bytes to write. Must be greater than zero + * @param resource $lob An PgSql\Lob instance, returned by pg_lo_open. + * @param string $data The data to be written to the large object. If length is + * an int and is less than the length of data, only + * length bytes will be written. + * @param int $length An optional maximum number of bytes to write. Must be greater than zero * and no greater than the length of data. Defaults to * the length of data. * @return int The number of bytes written to the large object. * @throws PgsqlException * */ -function pg_lo_write($large_object, string $data, int $len = null): int +function pg_lo_write($lob, string $data, int $length = null): int { error_clear_last(); - if ($len !== null) { - $result = \pg_lo_write($large_object, $data, $len); + if ($length !== null) { + $result = \pg_lo_write($lob, $data, $length); } else { - $result = \pg_lo_write($large_object, $data); + $result = \pg_lo_write($lob, $data); } if ($result === false) { throw PgsqlException::createFromPhpError(); @@ -1028,7 +767,7 @@ function pg_lo_write($large_object, string $data, int $len = null): int * pg_meta_data returns table definition for * table_name as an array. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @param string $table_name The name of the table. * @param bool $extended Flag for returning extended meta data. Default to FALSE. * @return array An array of the table definition. @@ -1046,35 +785,6 @@ function pg_meta_data($connection, string $table_name, bool $extended = false): } -/** - * pg_options will return a string containing - * the options specified on the given PostgreSQL - * connection resource. - * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. - * @return string A string containing the connection - * options. - * @throws PgsqlException - * - */ -function pg_options($connection = null): string -{ - error_clear_last(); - if ($connection !== null) { - $result = \pg_options($connection); - } else { - $result = \pg_options(); - } - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } - return $result; -} - - /** * Looks up a current parameter setting of the server. * @@ -1099,10 +809,11 @@ function pg_options($connection = null): string * anyway. Applications are encouraged to use pg_parameter_status rather than ad * hoc code to determine these values. * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is unspecified, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @param string $param_name Possible param_name values include server_version, * server_encoding, client_encoding, * is_superuser, session_authorization, @@ -1132,14 +843,14 @@ function pg_parameter_status($connection = null, string $param_name = null): str /** * pg_pconnect opens a connection to a - * PostgreSQL database. It returns a connection resource that is + * PostgreSQL database. It returns an PgSql\Connection instance that is * needed by other PostgreSQL functions. * * If a second call is made to pg_pconnect with * the same connection_string as an existing connection, the * existing connection will be returned unless you pass * PGSQL_CONNECT_FORCE_NEW as - * connect_type. + * flags. * * To enable persistent connection, the pgsql.allow_persistent * php.ini directive must be set to "On" (which is the default). @@ -1167,21 +878,17 @@ function pg_parameter_status($connection = null, string $param_name = null): str * requiressl (deprecated in favor of sslmode), and * service. Which of these arguments exist depends * on your PostgreSQL version. - * @param int $connect_type If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection + * @param int $flags If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection * is created, even if the connection_string is identical to * an existing connection. - * @return resource PostgreSQL connection resource on success, FALSE on failure. + * @return resource Returns an PgSql\Connection instance on success. * @throws PgsqlException * */ -function pg_pconnect(string $connection_string, int $connect_type = null) +function pg_pconnect(string $connection_string, int $flags = 0) { error_clear_last(); - if ($connect_type !== null) { - $result = \pg_pconnect($connection_string, $connect_type); - } else { - $result = \pg_pconnect($connection_string); - } + $result = \pg_pconnect($connection_string, $flags); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -1193,10 +900,11 @@ function pg_pconnect(string $connection_string, int $connect_type = null) * pg_ping pings a database connection and tries to * reconnect it if it is broken. * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is NULL, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @throws PgsqlException * */ @@ -1214,35 +922,6 @@ function pg_ping($connection = null): void } -/** - * pg_port returns the port number that the - * given PostgreSQL connection resource is - * connected to. - * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. - * @return int An int containing the port number of the database - * server the connection is to. - * @throws PgsqlException - * - */ -function pg_port($connection = null): int -{ - error_clear_last(); - if ($connection !== null) { - $result = \pg_port($connection); - } else { - $result = \pg_port(); - } - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } - return $result; -} - - /** * pg_prepare creates a prepared statement for later execution with * pg_execute or pg_send_execute. @@ -1264,17 +943,18 @@ function pg_port($connection = null): int * is no PHP function for deleting a prepared statement, the SQL DEALLOCATE * statement can be used for that purpose. * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is unspecified, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @param string $stmtname The name to give the prepared statement. Must be unique per-connection. If * "" is specified, then an unnamed statement is created, overwriting any * previously defined unnamed statement. * @param string $query The parameterized SQL statement. Must contain only a single statement. * (multiple statements separated by semi-colons are not allowed.) If any parameters * are used, they are referred to as $1, $2, etc. - * @return resource A query result resource on success. + * @return resource An PgSql\Result instance on success. * @throws PgsqlException * */ @@ -1310,10 +990,11 @@ function pg_prepare($connection = null, string $stmtname = null, string $query = * is to use pg_copy_from. This is a far simpler * interface. * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is unspecified, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @param string $data A line of text to be sent directly to the PostgreSQL backend. A NULL * terminator is added automatically. * @throws PgsqlException @@ -1360,10 +1041,11 @@ function pg_put_line($connection = null, string $data = null): void * most one SQL command in the given string. (There can be semicolons in it, * but not more than one nonempty command.) * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is unspecified, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @param string $query The parameterized SQL statement. Must contain only a single statement. * (multiple statements separated by semi-colons are not allowed.) If any parameters * are used, they are referred to as $1, $2, etc. @@ -1381,7 +1063,7 @@ function pg_put_line($connection = null, string $data = null): void * Values intended for bytea fields are not supported as * parameters. Use pg_escape_bytea instead, or use the * large object functions. - * @return resource A query result resource on success. + * @return resource An PgSql\Result instance on success. * @throws PgsqlException * */ @@ -1422,10 +1104,11 @@ function pg_query_params($connection = null, string $query = null, array $params * * * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. + * @param resource $connection An PgSql\Connection instance. + * When connection is unspecified, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @param string $query The SQL statement or statements to be executed. When multiple statements are passed to the function, * they are automatically executed as one transaction, unless there are explicit BEGIN/COMMIT commands * included in the query string. However, using multiple transactions in one function call is not recommended. @@ -1439,7 +1122,7 @@ function pg_query_params($connection = null, string $query = null, array $params * * Any user-supplied data substituted directly into a query string should * be properly escaped. - * @return resource A query result resource on success. + * @return resource An PgSql\Result instance on success. * @throws PgsqlException * */ @@ -1462,9 +1145,9 @@ function pg_query($connection = null, string $query = null) /** * pg_result_error_field returns one of the detailed error message - * fields associated with result resource. It is only available + * fields associated with result instance. It is only available * against a PostgreSQL 7.4 or above server. The error field is specified by - * the fieldcode. + * the field_code. * * Because pg_query and pg_query_params return FALSE if the query fails, * you must use pg_send_query and @@ -1474,9 +1157,9 @@ function pg_query($connection = null, string $query = null) * use pg_set_error_verbosity and pg_last_error * and then parse the result. * - * @param resource $result A PostgreSQL query result resource from a previously executed - * statement. - * @param int $fieldcode Possible fieldcode values are: PGSQL_DIAG_SEVERITY, + * @param resource $result An PgSql\Result instance, returned by pg_query, + * pg_query_params or pg_execute(among others). + * @param int $field_code Possible field_code values are: PGSQL_DIAG_SEVERITY, * PGSQL_DIAG_SQLSTATE, PGSQL_DIAG_MESSAGE_PRIMARY, * PGSQL_DIAG_MESSAGE_DETAIL, * PGSQL_DIAG_MESSAGE_HINT, PGSQL_DIAG_STATEMENT_POSITION, @@ -1489,10 +1172,10 @@ function pg_query($connection = null, string $query = null) * @throws PgsqlException * */ -function pg_result_error_field($result, int $fieldcode): ?string +function pg_result_error_field($result, int $field_code): ?string { error_clear_last(); - $result = \pg_result_error_field($result, $fieldcode); + $result = \pg_result_error_field($result, $field_code); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -1502,20 +1185,19 @@ function pg_result_error_field($result, int $fieldcode): ?string /** * pg_result_seek sets the internal row offset in - * a result resource. + * the result instance. * - * @param resource $result PostgreSQL query result resource, returned by pg_query, - * pg_query_params or pg_execute - * (among others). - * @param int $offset Row to move the internal offset to in the result resource. + * @param resource $result An PgSql\Result instance, returned by pg_query, + * pg_query_params or pg_execute(among others). + * @param int $row Row to move the internal offset to in the PgSql\Result instance. * Rows are numbered starting from zero. * @throws PgsqlException * */ -function pg_result_seek($result, int $offset): void +function pg_result_seek($result, int $row): void { error_clear_last(); - $result = \pg_result_seek($result, $offset); + $result = \pg_result_seek($result, $row); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -1524,14 +1206,14 @@ function pg_result_seek($result, int $offset): void /** * pg_select selects records specified by - * assoc_array which has + * conditions which has * field=>value. For a successful query, it returns an * array containing all records and fields that match the condition - * specified by assoc_array. + * specified by conditions. * - * If options is specified, + * If flags is specified, * pg_convert is applied to - * assoc_array with the specified flags. + * conditions with the specified flags. * * By default pg_select passes raw values. Values * must be escaped or PGSQL_DML_ESCAPE option must be @@ -1543,28 +1225,28 @@ function pg_result_seek($result, int $offset): void * JSON, Array, Regex, etc. These parameters should be handled * according to their contexts. i.e. Escape/validate values. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @param string $table_name Name of the table from which to select rows. - * @param array $assoc_array An array whose keys are field names in the table table_name, + * @param array $conditions An array whose keys are field names in the table table_name, * and whose values are the conditions that a row must meet to be retrieved. - * @param int $options Any number of PGSQL_CONV_FORCE_NULL, + * @param int $flags Any number of PGSQL_CONV_FORCE_NULL, * PGSQL_DML_NO_CONV, * PGSQL_DML_ESCAPE, * PGSQL_DML_EXEC, * PGSQL_DML_ASYNC or * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the - * options then query string is returned. When PGSQL_DML_NO_CONV + * flags then query string is returned. When PGSQL_DML_NO_CONV * or PGSQL_DML_ESCAPE is set, it does not call pg_convert internally. - * @param int $result_type - * @return mixed Returns TRUE on success. Returns string if PGSQL_DML_STRING is passed - * via options. + * @param int $mode + * @return mixed Returns string if PGSQL_DML_STRING is passed + * via flags, otherwise it returns an array on success. * @throws PgsqlException * */ -function pg_select($connection, string $table_name, array $assoc_array, int $options = PGSQL_DML_EXEC, int $result_type = PGSQL_ASSOC) +function pg_select($connection, string $table_name, array $conditions, int $flags = PGSQL_DML_EXEC, int $mode = PGSQL_ASSOC) { error_clear_last(); - $result = \pg_select($connection, $table_name, $assoc_array, $options, $result_type); + $result = \pg_select($connection, $table_name, $conditions, $flags, $mode); if ($result === false) { throw PgsqlException::createFromPhpError(); } @@ -1572,145 +1254,11 @@ function pg_select($connection, string $table_name, array $assoc_array, int $opt } -/** - * Sends a request to execute a prepared statement with given parameters, - * without waiting for the result(s). - * - * This is similar to pg_send_query_params, but the command to be executed is specified - * by naming a previously-prepared statement, instead of giving a query string. The - * function's parameters are handled identically to pg_execute. - * Like pg_execute, it will not work on pre-7.4 versions of - * PostgreSQL. - * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. - * @param string $stmtname 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 pg_prepare, - * pg_send_prepare or a PREPARE SQL - * command. - * @param array $params 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. - * @throws PgsqlException - * - */ -function pg_send_execute($connection, string $stmtname, array $params): void -{ - error_clear_last(); - $result = \pg_send_execute($connection, $stmtname, $params); - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } -} - - -/** - * Sends a request to create a prepared statement with the given parameters, - * without waiting for completion. - * - * This is an asynchronous version of pg_prepare: it returns TRUE if it was able to - * dispatch the request, and FALSE if not. After a successful call, call - * pg_get_result to determine whether the server successfully created the - * prepared statement. The function's parameters are handled identically to - * pg_prepare. Like pg_prepare, it will not work - * on pre-7.4 versions of PostgreSQL. - * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. - * @param string $stmtname The name to give the prepared statement. Must be unique per-connection. If - * "" is specified, then an unnamed statement is created, overwriting any - * previously defined unnamed statement. - * @param string $query The parameterized SQL statement. Must contain only a single statement. - * (multiple statements separated by semi-colons are not allowed.) If any parameters - * are used, they are referred to as $1, $2, etc. - * @throws PgsqlException - * - */ -function pg_send_prepare($connection, string $stmtname, string $query): void -{ - error_clear_last(); - $result = \pg_send_prepare($connection, $stmtname, $query); - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } -} - - -/** - * Submits a command and separate parameters to the server without - * waiting for the result(s). - * - * This is equivalent to pg_send_query except that query - * parameters can be specified separately from the - * query string. The function's parameters are - * handled identically to pg_query_params. Like - * pg_query_params, it will not work on pre-7.4 PostgreSQL - * connections, and it allows only one command in the query string. - * - * @param resource $connection PostgreSQL database connection resource. - * @param string $query The parameterized SQL statement. Must contain only a single statement. - * (multiple statements separated by semi-colons are not allowed.) If any parameters - * are used, they are referred to as $1, $2, etc. - * @param array $params 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. - * @throws PgsqlException - * - */ -function pg_send_query_params($connection, string $query, array $params): void -{ - error_clear_last(); - $result = \pg_send_query_params($connection, $query, $params); - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } -} - - -/** - * pg_send_query sends a query or queries asynchronously to the - * connection. Unlike - * pg_query, it can send multiple queries at once to - * PostgreSQL and get the results one by one using - * pg_get_result. - * - * Script execution is not blocked while the queries are executing. Use - * pg_connection_busy to check if the connection is - * busy (i.e. the query is executing). Queries may be cancelled using - * pg_cancel_query. - * - * Although the user can send multiple queries at once, multiple queries - * cannot be sent over a busy connection. If a query is sent while - * the connection is busy, it waits until the last query is finished and - * discards all its results. - * - * @param resource $connection PostgreSQL database connection resource. - * @param string $query The SQL statement or statements to be executed. - * - * Data inside the query should be properly escaped. - * @throws PgsqlException - * - */ -function pg_send_query($connection, string $query): void -{ - error_clear_last(); - $result = \pg_send_query($connection, $query); - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } -} - - /** * pg_socket returns a read only resource * corresponding to the socket underlying the given PostgreSQL connection. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @return resource A socket resource on success. * @throws PgsqlException * @@ -1739,138 +1287,72 @@ function pg_socket($connection) * PostgreSQL server. For more information, refer to the * PostgreSQL Documentation. * - * @param string $pathname The full path and file name of the file in which to write the + * @param string $filename The full path and file name of the file in which to write the * trace log. Same as in fopen. * @param string $mode An optional file access mode, same as for fopen. - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. - * @throws PgsqlException - * - */ -function pg_trace(string $pathname, string $mode = "w", $connection = null): void -{ - error_clear_last(); - if ($connection !== null) { - $result = \pg_trace($pathname, $mode, $connection); - } else { - $result = \pg_trace($pathname, $mode); - } - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } -} - - -/** - * pg_tty returns the TTY name that server - * side debugging output is sent to on the given PostgreSQL - * connection resource. - * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. - * @return string A string containing the debug TTY of - * the connection. + * @param resource $connection An PgSql\Connection instance. + * When connection is NULL, the default connection is used. + * The default connection is the last connection made by pg_connect + * or pg_pconnect. + * As of PHP 8.1.0, using the default connection is deprecated. * @throws PgsqlException * */ -function pg_tty($connection = null): string +function pg_trace(string $filename, string $mode = "w", $connection = null): void { error_clear_last(); if ($connection !== null) { - $result = \pg_tty($connection); + $result = \pg_trace($filename, $mode, $connection); } else { - $result = \pg_tty(); + $result = \pg_trace($filename, $mode); } if ($result === false) { throw PgsqlException::createFromPhpError(); } - return $result; } /** * pg_update updates records that matches - * condition with data. If - * options is specified, - * pg_convert is applied to - * data with specified options. + * conditions with values. * - * pg_update updates records specified by - * assoc_array which has - * field=>value. - * - * If options is specified, + * If flags is specified, * pg_convert is applied to - * assoc_array with the specified flags. + * values with the specified flags. * - * By default pg_update passes raw values. Values - * must be escaped or PGSQL_DML_ESCAPE option must be - * specified. PGSQL_DML_ESCAPE quotes and escapes - * parameters/identifiers. Therefore, table/column names became case - * sensitive. + * By default pg_update passes raw values. + * Values must be escaped or the PGSQL_DML_ESCAPE flag + * must be specified in flags. + * PGSQL_DML_ESCAPE 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. * - * @param resource $connection PostgreSQL database connection resource. + * @param resource $connection An PgSql\Connection instance. * @param string $table_name Name of the table into which to update rows. - * @param array $data An array whose keys are field names in the table table_name, + * @param array $values An array whose keys are field names in the table table_name, * and whose values are what matched rows are to be updated to. - * @param array $condition An array whose keys are field names in the table table_name, + * @param array $conditions An array whose keys are field names in the table table_name, * and whose values are the conditions that a row must meet to be updated. - * @param int $options Any number of PGSQL_CONV_FORCE_NULL, + * @param int $flags Any number of PGSQL_CONV_FORCE_NULL, * PGSQL_DML_NO_CONV, * PGSQL_DML_ESCAPE, * PGSQL_DML_EXEC, * PGSQL_DML_ASYNC or * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the - * options then query string is returned. When PGSQL_DML_NO_CONV + * flags then query string is returned. When PGSQL_DML_NO_CONV * or PGSQL_DML_ESCAPE is set, it does not call pg_convert internally. * @return mixed Returns TRUE on success. Returns string if PGSQL_DML_STRING is passed - * via options. + * via flags. * @throws PgsqlException * */ -function pg_update($connection, string $table_name, array $data, array $condition, int $options = PGSQL_DML_EXEC) +function pg_update($connection, string $table_name, array $values, array $conditions, int $flags = PGSQL_DML_EXEC) { error_clear_last(); - $result = \pg_update($connection, $table_name, $data, $condition, $options); - if ($result === false) { - throw PgsqlException::createFromPhpError(); - } - return $result; -} - - -/** - * pg_version returns an array with the client, protocol - * and server version. Protocol and server versions are only available if PHP - * was compiled with PostgreSQL 7.4 or later. - * - * For more detailed server information, use pg_parameter_status. - * - * @param resource $connection PostgreSQL database connection resource. When - * connection is not present, the default connection - * is used. The default connection is the last connection made by - * pg_connect or pg_pconnect. - * @return array Returns an array with client, protocol - * and server keys and values (if available) or invalid connection. - * @throws PgsqlException - * - */ -function pg_version($connection = null): array -{ - error_clear_last(); - if ($connection !== null) { - $result = \pg_version($connection); - } else { - $result = \pg_version(); - } + $result = \pg_update($connection, $table_name, $values, $conditions, $flags); if ($result === false) { throw PgsqlException::createFromPhpError(); } -- cgit v1.2.3