PDO::query

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)

PDO::query Executes an SQL statement, returning a result set as a PDOStatement object

Description

public PDOStatement PDO::query ( string $statement )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_COLUMN , int $colno )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_INTO , object $object )

PDO::query() executes an SQL statement in a single function call, returning the result set (if any) returned by 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().

Note:

Although this function is only documented as having a single parameter, you may pass additional arguments to this function. They will be treated as though you called PDOStatement::setFetchMode() on the resultant statement object.

Parameters

statement

The SQL statement to prepare and execute.

Data inside the query should be properly escaped.

Return Values

PDO::query() returns a PDOStatement object, or FALSE on failure.

Examples

Example #1 Demonstrate PDO::query

A nice feature of PDO::query() is that it enables you to iterate over the rowset returned by a successfully executed SELECT statement.

<?php
function getFruit($conn) {
    
$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    90

See Also

Коментарии

> When query() fails, the boolean false is returned. 

I think that is "Silent Mode".
If that set attribute ErrorMode "Exception Mode"
then that throw PDOException.
 $pdoObj = new PDO( $dsn, $user, $pass );
 $pdoObj->setAttribute("PDO::ATTR_ERRMODE", PDO::ERRMODE_EXCEPTION);
2006-05-03 01:26:29
http://php5.kiev.ua/manual/ru/pdo.query.html
The handling of errors by this function is controlled by the attribute PDO::ATTR_ERRMODE.

Use the following to make it throw an exception:
<?php
$dbh
->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
?>
2007-05-05 12:04:15
http://php5.kiev.ua/manual/ru/pdo.query.html
After a lot of hours working with DataLink on Oracle->MySQL and PDO we (me and Adriano Rodrigues, that solve it) discover that PDO (and oci too) need the attribute AUTOCOMMIT set to FALSE to work correctly with.
There's  3 ways to set autocommit to false: On constructor, setting the atribute after construct and before query data or initiating a Transaction (that turns off autocommit mode)

The examples:
<?php
// First way - On PDO Constructor
$options = array(PDO::ATTR_AUTOCOMMIT=>FALSE);

$pdo = new PDO($dsn,$user,$pass,$options);

// now we are ready to query DataLinks

?>

<?php 
// Second Way - Before create statements
$pdo = new PDO($dsn,$user,$pass);

$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,FALSE);
// or
$pdo->beginTransaction();

// now we are ready to query DataLinks
?>

To use DataLinks on oci just use OCI_DEFAULT on oci_execute() function;
2008-09-24 12:14:18
http://php5.kiev.ua/manual/ru/pdo.query.html
Trying to pass like second argument PDO::FETCH_ASSOC it still work.

So passing FETCH TYPE like argument seems work.

This save you from something like:

<?php
$result 
$stmt->setFetchMode(PDO::FETCH_NUM);
?>

Example:
<?php
$res 
$db->query('SELECT * FROM `mytable` WHERE true'PDO::FETCH_ASSOC);

?>
2014-09-08 17:14:51
http://php5.kiev.ua/manual/ru/pdo.query.html
Автор:
I would like to mention fetching rows from SQL query using PDO:

<?php

$dbh 
= new PDO('mysql:host=localhost;dbname=test'$user$pass);

// use the connection here
$sth $dbh->query('SELECT * FROM countries');

// fetch all rows into array, by default PDO::FETCH_BOTH is used
$rows $stm->fetchAll();

// iterate over array by index and by name
foreach($rows as $row) {

   
printf("$row[0] $row[1] $row[2]\n");
   
printf("$row['id'] $row['name'] $row['population']\n");

}
?>
2021-03-31 09:22:22
http://php5.kiev.ua/manual/ru/pdo.query.html
Автор:
When you make a wraper for PDO:query, you must define the method like this:

public function query( string $sql,  ?int $fetchMode = null, mixed ...$fetchModeArgs) : \PDOStatement|false
   
if you delete one of the parameters or use one of the oficials parameters you get a Fatal error
2023-10-23 13:00:33
http://php5.kiev.ua/manual/ru/pdo.query.html

    Поддержать сайт на родительском проекте КГБ