PDO::query

Prepares and executes an SQL statement without placeholders

&reftitle.description; public ``PDOStatement``false```PDO::query` `string` `query` ``int``null```fetchMode`&null; public ``PDOStatement``false```PDO::query` `string` `query` ``int``null```fetchMode` PDO::FETCH_COLUMN `int` `colno` public ``PDOStatement``false```PDO::query` `string` `query` ``int``null```fetchMode` PDO::FETCH_CLASS `string` `classname` `array` `constructorArgs` public ``PDOStatement``false```PDO::query` `string` `query` ``int``null```fetchMode` PDO::FETCH_INTO `object` `object`

`PDO::query` prepares and executes an SQL statement in a single function call, returning the statement as a `PDOStatement` object.

For a query that you need to issue multiple times, you will realize better performance if you prepare a `PDOStatement` object using `PDO::prepare` and issue the statement with multiple calls to `PDOStatement::execute`.

If you do not fetch all of the data in a result set before issuing your next call to `PDO::query`, your call may fail. Call `PDOStatement::closeCursor` to release the database resources associated with the `PDOStatement` object before issuing your next call to `PDO::query`.

If the `query` contains placeholders, the statement must be prepared and executed separately using `PDO::prepare` and `PDOStatement::execute` methods.

&reftitle.parameters;

`query`

- The SQL statement to prepare and execute.

  If the SQL contains placeholders, `PDO::prepare` and `PDOStatement::execute` must be used instead. Alternatively, the SQL can be prepared manually before calling `PDO::query`, with the data properly formatted using `PDO::quote` if the driver supports it.

`fetchMode`

- The default fetch mode for the returned `PDOStatement`. It must be one of the `PDO::FETCH_*` constants.

  If this argument is passed to the function, the remaining arguments will be treated as though `PDOStatement::setFetchMode` was called on the resultant statement object. The subsequent arguments vary depending on the selected fetch mode.

&reftitle.returnvalues;

Returns a `PDOStatement` object&return.falseforfailure;.

&reftitle.errors; &pdo.errors;
&reftitle.examples;

### SQL with no placeholders can be executed using `PDO::query`

    <?php
    $sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
    foreach ($conn->query($sql) as $row) {
        print $row['name'] . "\t";
        print $row['color'] . "\t";
        print $row['calories'] . "\n";
    }
    ?>

&example.outputs;

    apple   red     150
    banana  yellow  250
    kiwi    brown   75
    lemon   yellow  25
    orange  orange  300
    pear    green   150
    watermelon      pink    90

&reftitle.seealso;

- `PDO::exec`
- `PDO::prepare`
- `PDOStatement::execute`