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 个注释

up
1
jab_creations at yahoo dot com
1 个月前
在一台新服务器上,此函数错误地返回了 "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