函式名稱:ocibindbyname()
適用版本:PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8
函式描述:該函式用於繫結一個 PHP 變數到一個命名的佔位符,用於在一個 SQL 語句中執行預處理。
語法:bool ocibindbyname ( resource $stmt , string $column_name , mixed &$variable [, int $maxlength = -1 [, int $type = SQLT_CHR ]] )
引數:
- $stmt:一個有效的 OCI 語句資源(由函式 oci_parse() 或 oci_execute() 返回)。
- $column_name:要繫結的佔位符的名稱。
- &$variable:要繫結的 PHP 變數。注意,該變數必須是一個引用,以便在執行預處理時可以將繫結的值傳遞給變數。
- $maxlength(可選):要繫結的變數的最大長度。預設值為-1,表示沒有最大長度限制。
- $type(可選):要繫結的變數的型別。預設值為 SQLT_CHR,表示字串型別。
返回值:成功繫結返回 TRUE,失敗返回 FALSE。
示例:
// 建立一個 OCI 語句資源
$conn = oci_connect('username', 'password', 'localhost/XE');
$stmt = oci_parse($conn, 'SELECT * FROM employees WHERE department_id = :dept_id');
// 繫結一個 PHP 變數到命名佔位符
$dept_id = 10;
ocibindbyname($stmt, ':dept_id', $dept_id);
// 執行預處理語句
oci_execute($stmt);
// 獲取結果
while ($row = oci_fetch_array($stmt)) {
echo $row['EMPLOYEE_NAME'] . "\n";
}
// 釋放資源
oci_free_statement($stmt);
oci_close($conn);
在上述示例中,我們首先使用oci_connect()
函式建立了與 Oracle 資料庫的連線。然後,使用oci_parse()
函式建立了一個 OCI 語句資源,該語句用於查詢具有特定部門 ID 的員工資訊。接下來,我們使用ocibindbyname()
函式將 PHP 變數$dept_id
繫結到命名佔位符:dept_id
,以便在執行預處理時將繫結的值傳遞給變數。最後,透過oci_execute()
函式執行預處理語句,並使用oci_fetch_array()
函式獲取結果集中的資料。最後,我們使用oci_free_statement()
函式釋放語句資源,並使用oci_close()
函式關閉資料庫連線。