mysqli::set_charset

mysqli_set_charset

クライアントの文字セットを設定する

説明

オブジェクト指向型

public bool mysqli::set_charset(string $charset)

手続き型

bool mysqli_set_charset(mysqli $mysql, string $charset)

データベースサーバーとのデータの送受信に使用する、 文字セットを設定します。

パラメータ

link

手続き型のみ: mysqli_connect あるいは mysqli_init が返す mysqliオブジェクト。

charset

設定する文字セット。

戻り値

成功した場合に true を、失敗した場合に false を返します。

エラー / 例外

mysqli のエラー報告 (MYSQLI_REPORT_ERROR) が有効になっており、かつ要求された操作が失敗した場合は、警告が発生します。さらに、エラー報告のモードが MYSQLI_REPORT_STRICT に設定されていた場合は、mysqli_sql_exception が代わりにスローされます。

例1 mysqli::set_charset の例

オブジェクト指向型

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

/* 文字セットを utf8mb4 に変更します */
$mysqli->set_charset("utf8mb4");

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

手続き型

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

/* 文字セットを utf8mb4 に変更します */
mysqli_set_charset($link, "utf8mb4");

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

上の例の出力は、 たとえば以下のようになります。

Initial character set: latin1
Current character set: utf8mb4

注意

注意:

文字セットを変更するにはこの方法を使うことを推奨します。 mysqli_query で (SET NAMES utf8 などとして) 設定する方法はお勧めできません。詳細は MySQL の文字セットの概念 を参照ください。