PDO::query
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)
Prepares and executes an SQL statement without placeholders
Description
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.
Parameters
queryThe SQL statement to prepare and execute.
If the SQL contains placeholders,
PDO::prepareandPDOStatement::executemust be used instead. Alternatively, the SQL can be prepared manually before callingPDO::query, with the data properly formatted usingPDO::quoteif the driver supports it.fetchModeThe default fetch mode for the returned
PDOStatement. It must be one of thePDO::FETCH_*constants.If this argument is passed to the function, the remaining arguments will be treated as though
PDOStatement::setFetchModewas called on the resultant statement object. The subsequent arguments vary depending on the selected fetch mode.
Return Values
Returns a PDOStatement objectFalseforfailure.
Errors/Exceptions Errors
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";
}
?>The above example will output:
apple red 150
banana yellow 250
kiwi brown 75
lemon yellow 25
orange orange 300
pear green 150
watermelon pink 90See Also
PDO::execPDO::preparePDOStatement::execute