mysqli::set_charset

mysqli_set_charset

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

mysqli::set_charset -- mysqli_set_charsetSets the client character set

Description

Object-oriented style

public mysqli::set_charset(string $charset): bool

Procedural style

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

mysql

Procedural style only: A mysqli object returned by mysqli_connect() or mysqli_init()

charset

The desired character set.

Return Values

Returns true on success or false on failure.

Examples

Example #1 mysqli::set_charset() example

Object-oriented style

<?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 style

<?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));

The above examples will output something similar to:

Initial character set: latin1
Current character set: utf8mb4

Notes

Note:

To use this function on a Windows platform you need MySQL client library version 4.1.11 or above (for MySQL 5.0 you need 5.0.6 or above).

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