pg_query

Execute a query

&reftitle.description; ``PgSql\Result``false```pg_query` `PgSql\Connection` `connection` `string` `query`

`pg_query` executes the `query` on the specified database `connection`. `pg_query_params` should be preferred in most cases.

If an error occurs, and &false; is returned, details of the error can be retrieved using the `pg_last_error` function if the connection is valid.

Although `connection` can be omitted, it is not recommended, since it can be the cause of hard to find bugs in scripts.

This function used to be called `pg_exec`. `pg_exec` is still available for compatibility reasons, but users are encouraged to use the newer name.

&reftitle.parameters;

`connection`

- &pgsql.parameter.connection-with-unspecified-default;

`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.

  String interpolation of user-supplied data is extremely dangerous and is likely to lead to SQL injection vulnerabilities. In most cases `pg_query_params` should be preferred, passing user-supplied values as parameters rather than substituting them into the query string.

  Any user-supplied data substituted directly into a query string should be properly escaped.

&reftitle.returnvalues;

An `PgSql\Result` instance on success, &return.falseforfailure;.

&reftitle.changelog;

&Version; | &Description;
&pgsql.changelog.return-result-object; &pgsql.changelog.connection-object;

&reftitle.examples;

### `pg_query` example

    <?php

    $conn = pg_pconnect("dbname=publisher");
    if (!$conn) {
      echo "An error occurred.\n";
      exit;
    }

    $result = pg_query($conn, "SELECT author, email FROM authors");
    if (!$result) {
      echo "An error occurred.\n";
      exit;
    }

    while ($row = pg_fetch_row($result)) {
      echo "Author: $row[0]  E-mail: $row[1]";
      echo "<br />\n";
    }

    ?>

### Using `pg_query` with multiple statements

    <?php

    $conn = pg_pconnect("dbname=publisher");

    // these statements will be executed as one transaction

    $query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
    $query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
    $query .= "UPDATE authors SET author=NULL WHERE id=3;";

    pg_query($conn, $query);

    ?>

&reftitle.seealso;

- `pg_connect`
- `pg_pconnect`
- `pg_fetch_array`
- `pg_fetch_object`
- `pg_num_rows`
- `pg_affected_rows`