PHP8 PDOStatement::bindColumn

2024-03-24 00:07 更新

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

PDOStatement::bindColumn — 綁定一列到一個(gè) PHP 變量

說明

public PDOStatement::bindColumn(
    string|int $column,
    mixed &$var,
    int $type = PDO::PARAM_STR,
    int $maxLength = 0,
    mixed $driverOptions = null
): bool

PDOStatement::bindColumn() 安排特定變量綁定到查詢結(jié)果集中的指定列。每次調(diào)用 PDOStatement::fetch() 或 PDOStatement::fetchAll() 都將更新所有綁定到列的變量。

注意:在語句執(zhí)行前 PDO 有關(guān)列的信息并非總是可用,可移植的應(yīng)用應(yīng)在 PDOStatement::execute() 之后 調(diào)用此函數(shù)(方法)。但是,當(dāng)使用 PgSQL 驅(qū)動(dòng)時(shí),要想能綁定 LOB 列作為流,應(yīng)用程序必須在調(diào)用 PDOStatement::execute() 之前 調(diào)用此方法,否則大對(duì)象 OID 作為整數(shù)返回。

參數(shù) 

column

結(jié)果集中的列號(hào)(從1開始索引)或列名。如果使用列名,注意名稱應(yīng)該與由驅(qū)動(dòng)返回的列名大小寫保持一致。

var

將綁定到列的 PHP 變量名稱

type

通過 PDO::PARAM_* 常量指定的參數(shù)的數(shù)據(jù)類型。

maxLength

預(yù)分配提示。

driverOptions

驅(qū)動(dòng)的可選參數(shù)。

返回值 

成功時(shí)返回 true, 或者在失敗時(shí)返回 false。

錯(cuò)誤/異常 

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

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

示例 

示例 #1 把結(jié)果集輸出綁定到 PHP 變量

綁定結(jié)果集中的列到PHP變量是一種使每行包含的數(shù)據(jù)在應(yīng)用程序中立即可用的有效方法。下面的示例演示了 PDO 怎樣用多種選項(xiàng)和缺省值綁定和檢索列。

<?php
$stmt = $dbh->prepare('SELECT name, colour, calories FROM fruit');
$stmt->execute();

/* 通過列號(hào)綁定 */
$stmt->bindColumn(1, $name);
$stmt->bindColumn(2, $colour);

/* 通過列名綁定 */
$stmt->bindColumn('calories', $cals);

while ($stmt->fetch(PDO::FETCH_BOUND)) {
    print $name . "\t" . $colour . "\t" . $cals . "\n";
}

以上示例的輸出類似于:

apple   red     150
banana  yellow  175
kiwi    green   75
orange  orange  150
mango   red     200
strawberry      red     25

參見 

  • PDOStatement::execute() - 執(zhí)行預(yù)處理語句
  • PDOStatement::fetch() - 從結(jié)果集中獲取下一行
  • PDOStatement::fetchAll() - 從結(jié)果集中獲取剩余的行
  • PDOStatement::fetchColumn() - 從結(jié)果集中的下一行返回單獨(dú)的一列


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)