(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)
PDO::query — 執(zhí)行 SQL 語句,以 PDOStatement 對象形式返回結(jié)果集
$statement
,$PDO::FETCH_CLASS
,$classname
,$ctorargs
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() 方法。
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