PHP 日本研討會 2024

mysqli::get_charset

mysqli_get_charset

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

mysqli::get_charset -- mysqli_get_charset傳回字元集物件

描述

物件導向風格

public mysqli::get_charset(): ?object

程序式風格

mysqli_get_charset(mysqli $mysql): ?object

傳回一個字元集物件,提供目前活動字元集的幾個屬性。

參數

mysql

僅限程序式風格:由 mysqli_connect()mysqli_init() 傳回的 mysqli 物件

傳回值

此函式會傳回一個具有以下屬性的字元集物件

charset

字元集名稱

collation

校對名稱

dir

從中提取字元集描述的目錄 (?),或內建字元集的 ""

min_length

以位元組為單位的最小字元長度

max_length

以位元組為單位的最大字元長度

number

內部字元集號碼

state

字元集狀態(?)

範例

範例 #1 mysqli::get_charset() 範例

物件導向風格

<?php
$db
= mysqli_init();
$db->real_connect("localhost","root","","test");
var_dump($db->get_charset());
?>

程序式風格

<?php
$db
= mysqli_init();
mysqli_real_connect($db, "localhost","root","","test");
var_dump(mysqli_get_charset($db));
?>

以上範例將輸出

object(stdClass)#2 (7) {
  ["charset"]=>
  string(6) "latin1"
  ["collation"]=>
  string(17) "latin1_swedish_ci"
  ["dir"]=>
  string(0) ""
  ["min_length"]=>
  int(1)
  ["max_length"]=>
  int(1)
  ["number"]=>
  int(8)
  ["state"]=>
  int(801)
}

參見

新增筆記

使用者貢獻筆記 1 筆筆記

1
jab_creations at yahoo dot com
4 個月前
在新的伺服器上,此函式錯誤地傳回 "utf8mb4_general_ci"。

我開始回報錯誤,結果發現

1. PHP 團隊維護了一個內部靜態清單。
2. 他們最終決定不費心更新該內部靜態清單。

所以,身為一個想要確切知道發生什麼事的人(例如,巴黎密西根州 !== 巴黎法國),我現在拒絕使用此函式。

我不確定其他資料庫,但對於 MariaDB,您可以使用以下 SQL 查詢來確定許多字元集

SELECT VARIABLE_NAME, GLOBAL_VALUE, DEFAULT_VALUE
FROM INFORMATION_SCHEMA.SYSTEM_VARIABLES
WHERE VARIABLE_NAME LIKE '%CHAR%';
To Top