PDO::query
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
PDO::query — SQL ステートメントを実行し、結果セットを PDOStatement オブジェクトとして返す
説明
public PDO::query
( string $statement
) : PDOStatement
public PDO::query
( string $statement
, int $fetch_style
= PDO::FETCH_COLUMN
, int $colno
) : PDOStatement
public PDO::query
( string $statement
, int $fetch_style
= PDO::FETCH_CLASS
, string $classname
, array $ctorargs
) : PDOStatement
public PDO::query
( string $statement
, int $fetch_style
= PDO::FETCH_INTO
, object $object
) : PDOStatement
PDO::query() は、一回の関数コールの中で SQL ステートメントを実行し、このステートメントにより返された 結果セット (ある場合) を PDOStatement オブジェクトとして返します。
複数回発行する必要があるステートメントの場合、 PDO::prepare() で PDOStatement ステートメントを準備し、 PDOStatement::execute() でそのステートメントを 複数回発行する方がより良いパフォーマンスを得られると実感するでしょう。
PDO::query() を次にコールする前に 結果セット内の全てのデータを取得しない場合、そのコールは失敗します。 PDOStatement::closeCursor() をコールし、 次に PDO::query() をコールする前に PDOStatement オブジェクトに関連付けられたリソースを解放してください。
注意:
ひとつ以上の引数をこの関数に渡すと、 ふたつめ以降の引数は、 返されるステートメントオブジェクトに対して PDOStatement::setFetchMode() をコールするのと同じような扱いになります。
返り値
PDO::query() は、PDOStatement オブジェクトを返します。
失敗した場合は false
を返します。
例
例1 PDO::query の例
PDO::query() の優れた機能は、 実行に成功したSELECTステートメントにより返されたレコードセットで 反復処理が可能であることです。
<?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";}?>
上の例の出力は以下となります。
apple red 150 banana yellow 250 kiwi brown 75 lemon yellow 25 orange orange 300 pear green 150 watermelon pink 90
参考
- PDO::exec() - SQL ステートメントを実行し、作用した行数を返す
- PDO::prepare() - 文を実行する準備を行い、文オブジェクトを返す
- PDOStatement::execute() - プリペアドステートメントを実行する