函式名: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:設定預處理語句的預取行數。可選值為正整數。
- MYSQLI_STMT_ATTR_CURSOR_TYPE:設定預處理語句的遊標型別。可選值包括:
- $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() 方法之前必須先準備好預處理語句物件。
熱門工具排行榜