PHP MySQL 接続やら文字化けのFAQ2009/01/25 00:00

ぐぐってみるとFAQだったこと。
phpMyAdmin を動かすと SYSTEM@localhost はパスワード無しではMySQLに接続できません、とかいうエラーメッセージが出てDBに接続できない。

コマンドプロンプトでは接続できるのにphpを介するとrootで接続できないわけだ。

解決方法:
Windows/php.ini  の sql.safe-mode Onがデフォルトだが、Off にする。

[文字化け問題]

PHP php.ini EUC にしている
phpMyAdmin utf8 でDBを作った

最初、自分で書いたPHPスクリプトで検索すると日本語検索が上手くいかなかった。

set NAMES eucjpms

としたら、検索窓に日本語いれてもちゃんと検索結果が表示された。

MySQLの設定ファイル my.ini 中のキャラクター設定をutf8 にしてみたら、自前phpスクリプトは影響を受けなかったが、phpMyAdminでの検索ができなくなった。

my.ini の中の3ヶ所をすべての組み合わせで変えてみたが同じくダメ
[client]default-character-set= utf8 or ujis
[mysqld]default-character-set= utf8 or ujis
skip-character-set-client-handshake コメントアウトか生かすか

最終的 マイマシン XPウインドウズ
Apache 2.2.9, PHP 5.2.6, MySQL 5.0

phpMyAdmin はutf8で入力してDBを作る。
MySQL の my.ini はクライアントもサーバーもujis設定 スキップしない
PHP の php.ini は、EUC-JP

これで正常に動くことが分かった。 あれこれ変えたのに、結局最初の設定のままでよかったのだ・・・
肝は、
set NAMES eucjpms であった。