(PHP 5 >= 5.0.5, PHP 7, PHP 8)
mysqli::set_charset -- mysqli_set_charset — クライアントの文字セットを設定する
オブジェクト指向型
手続き型
データベースサーバーとのデータの送受信に使用する、 文字セットを設定します。
link
手続き型のみ: mysqli_connect() あるいは mysqli_init() が返す mysqliオブジェクト。
charset
設定する文字セット。
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());
$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));
mysqli_set_charset($link, "utf8mb4");
printf("Current character set: %s\n", mysqli_character_set_name($link));
上の例の出力は、 たとえば以下のようになります。
Initial character set: latin1 Current character set: utf8mb4
注意:
Windows プラットフォームでこの関数を使用するには、MySQL クライアント ライブラリのバージョン 4.1.11 以降(MySQL 5.0 の場合は 5.0.6 以降) が必要です。
注意:
文字セットを変更するにはこの方法を使うことを推奨します。 mysqli_query() で (
SET NAMES utf8
などとして) 設定する方法はお勧めできません。詳細は MySQL の文字セットの概念 を参照ください。