ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

某有名な学習サイトで学んだことメモメモ

スポンサードリンク

http://www.flickr.com/photos/84122371@N00/2265863104
photo by CalEvans


前回に引き続き行った内容をメモ

学んだこと

  • phpについて
    • php(PDO)を使ったDBへのアクセス


あと、思ったんだけど、やっぱり数学っていうか、数字には強くならないといけないと思った。


よくプログラムはパズルとかそういったイメージって思い込んでいたんだけど、数式(アルゴリズムとか、パターンとか)をどれだけ覚えているかで、多分組むスピードは全然違うし、実現のコード量も変わってくると実感した。(今更。。。。というか、うすうす感じていたことが形になった? というのかね? )


使える武器が増えてきて、初めてパズルで組み合わせることができると思いました。


やべぇ、、、これから数学チックになるのか。これまでサボってきたことが悔やまれる・・・orz


他に行ったこと

MySQLのテーブルの文字コードについて


環境によってはデータを"insert"する段階で、文字コードエラーが返却されるかも。


その際は、一度テーブルを"drop"して、作りなおす際に、文字コードを一緒に設定しちゃおう。

# 下記記述は例であって、的当に値を決めています。
mysql> create table ${テーブル名}
	id int not null auto_increment,
	message varchar(255) not null,
)
character set 'utf8';
# ↑この"character set 'utf8'"が大切。


ちなみに、"my.cnf"の設定で、デフォルトでデータベースや、テーブルの文字コードを設定することが可能です。

追記 2014/12/20


コメント頂きました!YamashiroRさんありがとうございます(^^


調べてみたら、どうやら動的に設定できるもよう・・・orz 勉強がまだまだ足りん。。。


上の方法より、dropして作りなおす手間がないので、こちらをオススメします。"alter"便利やね。

# テーブルの文字コードを変更するコマンド
mysql> alter table ${テーブル名} charset=utf8;

データベースのsocketの設定


データベースでのやりとりの際には、socketの設定が必要です。


もし設定されていない場合は、下記エラーが出力されるはず。

SQLSTATE[HY000] [2002] No such file or directory


このエラーが出力されたら、下記設定を行いましょう。

# phpの設定を修正
$ sudo vim /etc/php.ini


#######################
# 981行目ぐらい
pdo_mysql.default_socket=

# 上の設定を下記へ変更
pdo_mysql.default_socket= /tmp/mysql.sock

#######################


# php.iniの編集が終了したら、Apacheを再起動してください。
$ sudo apachectl -k restart

データベースとのやり取りに使うドライバー"PDO"の文字コードについて


多分ほとんどの人がハマるかも。下記Qiitaがめちゃくちゃ参考になりました。ブクマもしちゃいました。



PHPでデータベースに接続するときのまとめ - Qiita



ソースコードには記述がありますが、めんどくせーことにphp側でpdoの文字コードの設定を定義しないといけないっぽいです。


なので、下記のように記述しましょう。

// ドライバーの文字コードを設定
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

まとめ


やっぱり、こういったことを一度経験したことがあるか、ないか、だけで、こんなにも考え方が変わるんだと、実感しました。


これまで、これよりすごいと思うこと(◯◯認識とか、◯◯解析とか、◯◯集計システムとか)を、やってきたけど、、、、まだまだ経験不足と理解度不足であることもさらに感じました。(´・ω・`)ショボーン


そもそも、上記案件はほとんど未完成に近いもんばかりでしたけどね! (`ω´)フンダ!


orz


私は個人でプログラムを学んできましたが、やっぱり一緒になって教えてくれる人とかいなければ成長が遅いことに気がついた。


どこか良いコミュニティないかな? (´・ω・)