php8.5
Home/ Manual/ mysqli / mysqli/ mysqli::set_charset

mysqli::set_charset

PHP function Edit on GitHub ✎

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

Sets the client character set

Description

Oop

mysqli::set_charset(string $charset): bool

Procedural

mysqli_set_charset(mysqli $mysql, string $charset): bool

Sets the character set to be used when sending data from and to the database server.

Parameters

charset

The desired character set.

Return Values

Success

Errors/Exceptions Conditionalexception

Examples

mysqli::set_charset example

Oop

php
<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

printf("Initial character set: %s\n", $mysqli->character_set_name());

/* change character set to utf8mb4 */
$mysqli->set_charset("utf8mb4");

printf("Current character set: %s\n", $mysqli->character_set_name());

Procedural

php
<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

printf("Initial character set: %s\n", mysqli_character_set_name($link));

/* change character set to utf8mb4 */
mysqli_set_charset($link, "utf8mb4");

printf("Current character set: %s\n", mysqli_character_set_name($link));

Similar

output
Initial character set: latin1
Current character set: utf8mb4

Notes

Note

This is the preferred way to change the charset. Using mysqli_query() to set it (such as SET NAMES utf8) is not recommended. See the MySQL character set concepts section for more information.

See Also

Source: reference/mysqli/mysqli/set-charset.xml · from the official PHP manual (php/doc-en)