PDO::query

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

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

說(shuō)明

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 語(yǔ)句,以 PDOStatement 對(duì)象形式返回結(jié)果集(如果有數(shù)據(jù)的話)。

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

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

注意:

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

參數(shù)

statement

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

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

返回值

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

范例

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

PDO::query() 一個(gè)不錯(cuò)的功能是:執(zhí)行 SELECT 語(yǔ)句,并能夠循環(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";
    }
}
?>

以上例程會(huì)輸出:

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

參見

  • PDO::exec() - 執(zhí)行一條 SQL 語(yǔ)句,并返回受影響的行數(shù)
  • PDO::prepare() - 準(zhǔn)備要執(zhí)行的語(yǔ)句,并返回語(yǔ)句對(duì)象
  • PDOStatement::execute() - 執(zhí)行一條預(yù)處理語(yǔ)句