mysqli::get_charset
mysqli_get_charset
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
mysqli::get_charset -- mysqli_get_charset — Returns a character set object
说明
面向对象风格
过程化风格
Returns a character set object providing several properties of the current active character set.
返回值
The function returns a character set object with the following properties:
charsetCharacter set name
collationCollation name
dirDirectory the charset description was fetched from (?) or "" for built-in character sets
min_lengthMinimum character length in bytes
max_lengthMaximum character length in bytes
numberInternal character set number
stateCharacter set status (?)
示例
示例 #1 mysqli::get_charset() example
面向对象风格
<?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 note
  
  
  jab_creations at yahoo dot com ¶
  
 
7 months ago
  On a new server this function was incorrectly returning "utf8mb4_general_ci".
I started a bug report and it turns out that:
1. The PHP team maintained an internal static list.
2. They ultimately decided to not be bothered to update that internal static list.
So as someone with the intentions on knowing exactly what is going on (e.g. Paris Michigan !== Paris France) I now reject the use of this function.
I'm not sure about other databases though for MariaDB you can determine the many character sets using the following SQL query:
SELECT VARIABLE_NAME, GLOBAL_VALUE, DEFAULT_VALUE 
FROM INFORMATION_SCHEMA.SYSTEM_VARIABLES 
WHERE VARIABLE_NAME LIKE '%CHAR%';