mysqlとphp 日本語の表示

PHP

モック作りもひと段落したので、
データベースの内容をPHPで表示してみることに挑戦。

実際にmysqlに簡単なテーブルを一個作ってみる。
———-
CREATE TABLE ~~~
———-

そして数行ダミー情報を入れる。
——-
INSERT INTO ~~~
——-

とりあえずsql文はダイジョブ。

そして、、これをPHPにてブラウザで表示してみる、、初めてのPHPですな。

拾ってきたサンプルコードそのままに、
自分の環境に関するところを変更してlocalhostで表示。

とりあえず出るとことは出た!

けど日本語が表示されないダウン
もしくは文字化ける。

これに結構時間がかかった。

結果4日くらい引っ張った。UTF-8で統一するのに
ネットで調べてもみんなの解決方法が違う・・!

いろいろ調べた結果。
—————————————————————
■my.ini に以下を追加。

[mysqld]
・・
・・
character-set-server=utf8
skip-character-set-client-handshake

[mysqldump]
・・
default-character-set = utf8

[mysql]
・・
default-character-set=utf8

iniを触るなんて!これって触っちゃダメなファイルじゃないの??
と不安になりつつおそるおそる更新。
ここでも最初更新できないとか言われショックを受けるが
エクスプローラから権限を変えて変更できるようになった。

■現在の設定を確認

musql consoleで
show variables like ‘character_set%’;
を入力してみる。

↓が正解

$プログラム初心者がPHPで一からサイトを作ってみる日記☆

私は最初なってなかったので

SET character_set_client=utf8;
SET character_set_results=utf8;

と打ち込んで一個ずつ個別にさらに修正。

■PHP側のMETA

プログラム初心者がPHPで一からサイトを作ってみる日記☆

としておく。

■mySQL:データベース作るとき。。

CREATE DATABASE データベース名 default character set utf8;

■mySQL:テーブル作るとき。。

CREATE TABLE テーブル名
カラム名1 型 ,
カラム名2 型 …
PRIMARY KEY (主キー名)
) default character set utf8;

■mySQL:日本語データを入れるとき!重要

せっかく設定を全部utf8に合わせたのに、
このままだとmysql consoleからは日本語が入れられない。

MySQL Query Browserなどのツールを使用するとインサートできる。

だけどmysql consoleでも日本語インサートしたい私。

その方法は、
mysql consoleを立ち上げたら必ず

SET NAMES cp932;

を打ち込む。

これで完了!

(または以下を打ち込むという手もあるらしい
SET character_set_client=sjis;
SET character_set_results=sjis;)

—————————————————————

ちゃんと日本語含めて
データベースの内容がブラウザで見れたキラキラ

ちょっと進歩した自分に感動。

—–

コメント

タイトルとURLをコピーしました