【即解決】heroku MySQL phpで日本語が使えない、文字化けする、はてな?になってしまう
heroku MySQL phpで日本語が使えないときの解決方法
データベースに接続します
$mysqli = new mysqli( DB_HOST, DB_USER, DB_PASS, DB_NAME);
ここで、文字コードをutf8に設定します。
$mysqli->set_charset(‘utf8’);
これだけでは、まだダメな場合があります。
sqlに設定されている文字コードの確認は
show variables like ‘character%’;
ここで重要な変数が2つあります。
まず、
変数の名前 | 何についての変数? | 変数の意味 |
---|---|---|
character_set_client | client | クライアントからサーバに送るときの文字コード |
character_set_results | server | サーバがクライアントへ送るときの文字コード |
という関係があります。
つまり、MySQLからSELECTでサーバの中身をみに行く前に、
//サーバーがクライアントにクエリ結果を送る時にutf8にする
//(latin1だと全ての日本語が「?」に変換される)
$sql = “set character_set_results=utf8”;
$res = $mysqli->query($sql);
を設定する必要があります。
逆に、MySQLから
INSERTでサーバーに情報を追加したり、
UPDATEでサーバーの中身を変更したりする前に、
$mysqli->set_charset(‘utf8’);
$sql = “set character_set_clients=utf8”;
$res = $mysqli->query($sql);
を設定する必要があります。
これらの設定はデータベースが再起動されるたびに初期化されてしまいます。
ですので、クエリを投げる前に毎回この設定をする必要があります。
いま読むべき記事
私はいわゆる教養と呼ばれているような情報を、このブログで発信してきました。
皆さんも、ぜひこのブログを読んで教養を高めてみてください。
留学なし2週間でTOEFL100点をとった勉強法はこちらご覧いただけます。
英語を学ぶと収入がアップしたり、留学のチャンスが出てきたりしますよ!
今年のはじめに話題になった「第三次世界大戦」っていったいなんだったんでしょうか?
詳しくはここをチェックしてみてください。
パリの美術館が10万作品を無料で公開して話題になりました。
しかし、肝心のサイトがフランス語で書かれており、ダウンロード方法がわかりにくい状況です。
そこで、画像を使って非常に丁寧にダウンロード方法をまとめました。
「わかりやすい」との反響もたくさんいただいたので、ぜひチェックしてみてください。
武蔵美は五美大展にも出展していましたね。
コメント