PHP8 PDO::query

2024-03-24 00:07 更新

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

PDO::query — 預處理并執(zhí)行沒有占位符的 SQL 語句

說明

public PDO::query(string $query, ?int $fetchMode = null): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_COLUMN, int $colno): PDOStatement|false
public PDO::query(
    string $query,
    ?int $fetchMode = PDO::FETCH_CLASS,
    string $classname,
    array $constructorArgs
): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_INTO, object $object): PDOStatement|false

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

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

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

注意:如果 包含占位符,則必須使用 PDO::prepare() 和 PDOStatement::execute() 方法分別預處理和執(zhí)行語句。 query

參數(shù) 

query

預處理和執(zhí)行的 SQL 語句。

如果 SQL 包含占位符,則必須使用 PDO::prepare() 和 PDOStatement::execute()。 或者在調(diào)用 PDO::query() 之前手動預處理 SQL,如果驅(qū)動程序支持,使用 PDO::quote() 正確格式化數(shù)據(jù)。

fetchMode

返回 PDOStatement 的默認獲取模式。 必須是 PDO::FETCH_* 常量之一。

如果將此參數(shù)傳遞給函數(shù),則其余參數(shù) 將被視為在生成的語句對象上調(diào)用了 PDOStatement::setFetchMode()。 后續(xù)參數(shù)因所選的提取模式而異。

返回值 

返回 PDOStatement 對象 或者在失敗時返回 false

錯誤/異常 

如果屬性 PDO::ATTR_ERRMODE 設置為 PDO::ERRMODE_WARNING,則發(fā)出級別為 E_WARNING 的錯誤。

如果屬性 PDO::ATTR_ERRMODE 設置為 PDO::ERRMODE_EXCEPTION,則拋出 PDOException。

示例 

示例 #1 沒有占位符的 SQL 可以使用 PDO::query() 執(zhí)行

<?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() - 執(zhí)行 SQL 語句,并返回受影響的行數(shù)
  • PDO::prepare() - 預處理要執(zhí)行的語句,并返回語句對象
  • PDOStatement::execute() - 執(zhí)行預處理語句


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號