mysqli::set_charset
mysqli_set_charset
(PHP 5 >= 5.0.5, PHP 7)
mysqli::set_charset -- mysqli_set_charset — クライアントのデフォルト文字セットを設定する
説明
オブジェクト指向型
public mysqli::set_charset
( string $charset
) : bool
手続き型
mysqli_set_charset
( mysqli $link
, string $charset
) : bool
データベースサーバーとのデータの送受信に使用する、 デフォルトの文字セットを設定します。
返り値
成功した場合に true
を、失敗した場合に false
を返します。
注意
注意:
Windows プラットフォームでこの関数を使用するには、MySQL クライアント ライブラリのバージョン 4.1.11 以降(MySQL 5.0 の場合は 5.0.6 以降) が必要です。
注意:
文字セットを変更するにはこの方法を使うことを推奨します。 mysqli_query() で (
SET NAMES utf8
などとして) 設定する方法はお勧めできません。詳細は MySQL の文字セットの概念 を参照ください。
例
例1 mysqli::set_charset() の例
オブジェクト指向型
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "test");/* 接続状況をチェックします */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}printf("Initial character set: %s\n", $mysqli->character_set_name());/* 文字セットを utf8 に変更します */if (!$mysqli->set_charset("utf8")) { printf("Error loading character set utf8: %s\n", $mysqli->error); exit();} else { printf("Current character set: %s\n", $mysqli->character_set_name());}$mysqli->close();?>
手続き型
<?php$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');/* 接続状況をチェックします */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}printf("Initial character set: %s\n", mysqli_character_set_name($link));/* 文字セットを utf8 に変更します */if (!mysqli_set_charset($link, "utf8")) { printf("Error loading character set utf8: %s\n", mysqli_error($link)); exit();} else { printf("Current character set: %s\n", mysqli_character_set_name($link));}mysqli_close($link);?>
上の例の出力は、 たとえば以下のようになります。
Initial character set: latin1 Current character set: utf8
参考
- mysqli_character_set_name() - データベース接続のデフォルトの文字コードセットを返す
- mysqli_real_escape_string() - 接続の現在の文字セットを考慮して、SQL 文で使用する文字列の特殊文字をエスケープする
- MySQL 文字セットのコンセプト
- » MySQL がサポートする文字セットの一覧