查詢

mysqli_stmt::attr_set()函式—用法及示例

「 設定預處理語句物件的屬性 」


函式名:mysqli_stmt::attr_set()

適用版本:PHP 8.0.0 及以上版本

用法:該方法用於設定預處理語句物件的屬性。

語法:bool mysqli_stmt::attr_set(int $attr, mixed $mode)

引數:

  • $attr:表示要設定的屬性,可以是以下常量之一:
    • MYSQLI_STMT_ATTR_CURSOR_TYPE:設定預處理語句的遊標型別。可選值包括:
      • MYSQLI_CURSOR_TYPE_NO_CURSOR:不使用遊標。
      • MYSQLI_CURSOR_TYPE_READ_ONLY:只讀遊標。
      • MYSQLI_CURSOR_TYPE_FOR_UPDATE:可更新遊標。
      • MYSQLI_CURSOR_TYPE_SCROLLABLE:可滾動遊標。
    • MYSQLI_STMT_ATTR_PREFETCH_ROWS:設定預處理語句的預取行數。可選值為正整數。
  • $mode:表示要設定的屬性的值。

返回值:成功時返回 true,失敗時返回 false。

示例:

// 建立資料庫連線
$mysqli = new mysqli("localhost", "username", "password", "database");

// 準備預處理語句
$stmt = $mysqli->prepare("SELECT id, name FROM my_table WHERE age > ?");

// 設定預處理語句的遊標型別為可滾動遊標
$stmt->attr_set(MYSQLI_STMT_ATTR_CURSOR_TYPE, MYSQLI_CURSOR_TYPE_SCROLLABLE);

// 設定預處理語句的預取行數為 100
$stmt->attr_set(MYSQLI_STMT_ATTR_PREFETCH_ROWS, 100);

// 繫結引數並執行查詢
$age = 18;
$stmt->bind_param("i", $age);
$stmt->execute();

// 獲取結果集
$result = $stmt->get_result();

// 遍歷結果集並輸出資料
while ($row = $result->fetch_assoc()) {
    echo "ID: " . $row['id'] . ", Name: " . $row['name'] . "<br>";
}

// 關閉預處理語句和資料庫連線
$stmt->close();
$mysqli->close();

以上示例中,我們首先建立了一個資料庫連線物件 $mysqli,並使用該物件準備了一個預處理語句 $stmt。然後,我們使用 mysqli_stmt::attr_set() 方法分別設定了預處理語句的遊標型別為可滾動遊標和預取行數為 100。接下來,我們繫結引數並執行了查詢,然後透過獲取結果集並遍歷輸出了查詢結果。最後,我們關閉了預處理語句和資料庫連線。

請注意,使用 mysqli_stmt::attr_set() 方法之前必須先準備好預處理語句物件。

補充糾錯
上一個函式: mysqli_stmt::bind_param()函式
下一個函式: mysqli_stmt::attr_get()函式
熱門PHP函式
分享連結