ラベル MySQL の投稿を表示しています。 すべての投稿を表示
ラベル MySQL の投稿を表示しています。 すべての投稿を表示

2014年4月29日火曜日

MySQLのDATETIMEをPHPのtimestampに変換する。

MySQLから取得したDATETIMEは、"YYYY-MM-DD HH:MM:SS"という形式の文字列なので、strtotime()を使ってUnixタイムスタンプに変換する。
echo date('Y-m-s', strtotime($datetime));

PHPとMySQLで文字化ける。

ローカル開発環境でPHPからMySQLのデータを取り出して表示させたら、日本語が文字化けしていた。
よくある事ですね。
やれやれ、文字コードの設定をせねばならぬ。

後々、さくらのレンタルサーバーにアップするつもりなので、そちらの文字コードに合わせようかと思う。

さくらのレンタルサーバーの仕様
http://support.sakura.ad.jp/manual/rs/tech_server.html

これによるとPHPもMySQLもEUC-JP(ujis)がデフォルトのようです。
よし、じゃあやるか。まずはMySQLから。

my.cnfの置き場所を調べる。
$ /usr/local/mysql/bin/mysql --help
helpの中ほどくらいに、下記の記述が見つかる。
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 
つまりこの4つのどこかにあればいいらしい。上から順に読み込まれるみたい。
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/mysql/etc/my.cnf
~/.my.cnf
今回は/etc/my.cnfに置く事にした。
/etc/my.cnfが存在しなかったので、下記の場所からコピーして編集。
$ sudo cp /usr/local/mysql/my.cnf /etc/
$ sudo vi /etc/my.cnf
[mysqld]の下に追加。
# MySQLサーバーの文字コードをEUC-JP(ujis)に設定
character-set-server = ujis
# クライアント側の文字コードが設定されていない場合はサーバー側の文字コードを使用
skip-character-set-client-handshake
MySQLを再起動。
設定が反映されているか調べる
$ /usr/local/mysql/bin/mysql -u root -p
mysql> show variables like 'char%';
結果
character_set_system以外はujisになっていますね!
character_set_systemはutf8のままでいいらしい。

次はPHPの文字コードを設定する。
こちらはMySQL接続後に下記のコードを入れるだけ。
mysqli_set_charset($db, "ujis");
あとはデータベースのテーブルを作り直したりするなりPHPのソースコードをEUC-JPで保存するなりなんなり。
 私はこれで止めました。(文字化けを)

2014年4月27日日曜日

僕のMacにphpMyAdminを導入する。

phpMyAdminのサイトからダウンロードする。
http://www.phpmyadmin.net/home_page/index.php


phpMyAdmin-4.1.14-all-languages.zipを解凍。
出来たフォルダを好きなところに置く。
あとはApacheの設定でそこにアクセス出来るようにすればインストール完了。
(参照:Web開発用にApacheの設定を変更する。)

ブラウザからphpMyAdminのindex.phpにアクセスする。
以下のようなログイン画面が見えていればOK.


次にphpMyAdminの設定を行う。
phpMyAdminのフォルダにconfig.sample.inc.phpがあるので、それをコピーしてconfig.inc.phpに名前を変更する。


config.inc.phpをエディタで開いて編集する。
今回編集したのは以下の項目。
// ホスト名を一応バーチャルホストのに変えた
$cfg['Servers'][$i]['host'] = 'phpmyadmin.localhost';
// ローカルなので、パスワード入力無し
$cfg['Servers'][$i]['AllowNoPassword'] = true;
これでよし。
設定したあとはApacheを再起動させる。
そしてサイドphpMyAdminのindex.phpにアクセスし、"root"でログインする。
これでもう使えるようになるよ!

2014年4月26日土曜日

僕のMacにMySQLを入れる。

Mac OSX 10.9.x(Mavericks)には標準でMySQLが入っていないらしい。
ということは自分でインストールしないといけないって事か。
では早速インストールだ!

ここからMySQL Community Serverをダウンロードする。
http://dev.mysql.com/downloads/mysql/

現在(2014/4/26)は5.6.17が最新。
Mac OSX 10.9用のは無いみたいなので、10.7用のをダウンロード。


リンク先でサインアップを促されるけど、めんどくさいのでNo thanks.


これでmysql-5.6.17-osx10.7-x86_64.dmgがダウロード出来たので、あとは普通にインストール。



mysql-5.6.17-osx10.7-x86_64.pkgなどは、"開けません!"とOSからお叱りが来るかもしれないが、右クリックで開けばいけるいける。

mysql-5.6.17-osx10.7-x86_64.pkg, MySQL.prefPane, MySQLStartupItem.pkgをインストールしたら準備完了。

システム環境設定からMySQLを選んで、


"Start MySQL Server"を押してMySQL Serverを起動。
ちなみにMySQLStartupItem.pkgをインストールすると次回からMac起動時に自動でMySQLを起動してくれるらしい。


"Running"になったのを確認してから、ターミナルで以下のコマンドを入力。
$ /usr/local/mysql/bin/mysql --version
バージョン情報が表示されればインストール完了!
これでPHPと合わせてWebアプリケーションを作ったりしたらいいよ。