PDO::query

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

PDO::query 執(zhí)行 SQL 語句,以 PDOStatement 對象形式返回結(jié)果集

說明

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

PDO::query() 在單次函數(shù)調(diào)用內(nèi)執(zhí)行 SQL 語句,以 PDOStatement 對象形式返回結(jié)果集(如果有數(shù)據(jù)的話)。

如果反復(fù)調(diào)用同一個查詢,用 PDO::prepare() 準備 PDOStatement 對象,并用 PDOStatement::execute() 執(zhí)行語句,將具有更好的性能。

如果沒有完整獲取結(jié)果集內(nèi)的數(shù)據(jù),就調(diào)用下一個 PDO::query(),將可能調(diào)用失敗。 應(yīng)當在執(zhí)行下一個 PDO::query() 前,先用 PDOStatement::closeCursor() 釋放數(shù)據(jù)庫PDOStatement 關(guān)聯(lián)的資源。

注意:

如果傳入函數(shù)的參數(shù)數(shù)量超過一個,多余的參數(shù)將相當于調(diào)用結(jié)果對象 PDOStatement::setFetchMode() 方法。

參數(shù)

statement

需要準備、執(zhí)行的 SQL 語句。

查詢里的數(shù)據(jù)應(yīng)該用恰當?shù)男问睫D(zhuǎn)義。

返回值

PDO::query() 返回 PDOStatement 對象,或在失敗時返回 false。

范例

示例 #1 展示 PDO::query 的使用

PDO::query() 一個不錯的功能是:執(zhí)行 SELECT 語句,并能夠循環(huán)遍歷結(jié)果集。

<?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";
    }
}
?>

以上例程會輸出:

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

參見