eck 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. * @return resource A socket resource on success. * @throws PgsqlException * */ function pg_socket($connection) { error_clear_last(); $result = \pg_socket($connection); if ($result === false) { throw PgsqlException::createFromPhpError(); } return $result; } /** * pg_trace enables tracing of the PostgreSQL * frontend/backend communication to a file. To fully understand the results, * one needs to be familiar with the internals of PostgreSQL * communication protocol. * * For those who are not, it can still be * useful for tracing errors in queries sent to the server, you * could do for example grep '^To backend' * trace.log and see what queries actually were sent to the * 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 * 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. * @throws PgsqlException * */ function pg_tty($connection = null): string { error_clear_last(); if ($connection !== null) { $result = \pg_tty($connection); } else { $result = \pg_tty(); } 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. * * pg_update updates records specified by * assoc_array which has * field=>value. * * If options is specified, * pg_convert is applied to * assoc_array 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. * * 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 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, * 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, * and whose values are the conditions that a row must meet to be updated. * @param int $options 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 * 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. * @throws PgsqlException * */ function pg_update($connection, string $table_name, array $data, array $condition, int $options = 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(); } if ($result === false) { throw PgsqlException::createFromPhpError(); } return $result; } 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');