Skip to content

PDO

PDO published on PDO へのコメントはまだありません

■PHPからMySQLにアクセス

最近PHPを使う時はいつもsymfonyを使ってるので、DBに接続したりSQLを投げるコードを直接書くことはなかったんだけど、つい最近、ほんのお遊びプログラムを作る時に、わざわざsymfonyを使うまでもないと思ったので、プレーンなPHPで書くことにした。

普通のPHPを使うのなんて久しぶりなので、最初はmysql_connectとかの昔ながらのやり方をやってたんだけど、それだとさすがに芸がないので他のやり方をすることにした。

■PDO

どうやら調べてみたら、ここ最近ではPDOを使う人が多いみたいなので自分もそうしてみることにした。CodeZineにPDOの記事が載ってたのでそれを見つつやってみる。PDOにしろ何にしろ、そもそも人間の労力を減らすための物なので、そんなに難しいわけがない。

・文字コード

で、次に引っかかったのが定番の文字コード。色々見てると例の

set names utf8

ってのを実行してる例が多かったけど、これって筋が悪いというかあまり美しくないって個人的には思う。で、調べている途中にこんなページが見付かった。

Shift JISの場合、set namesで文字コードを指定しても、PDOが文字コードを意識した作りになってないから(?)、SQLインジェクションが起こる可能性があるらしい。

Continue reading PDO

DreamHostのmysqlコマンドで文字化け

DreamHostのmysqlコマンドで文字化け published on DreamHostのmysqlコマンドで文字化け へのコメントはまだありません

自分用メモ。

DreamHostで動いているシステムのDBの中身を触る際、phpMyAdminなんて使うのはたるいのでsshでログインしてmysqlコマンドを使う。

DBの文字コードはutf8だけど、mysqlコマンドはlatin1を使おうとする。解決方法は2通り。

1. 以下のようにコマンドラインオプションで文字コードを指定。

mysql -h mysql.example.com -u user -p --default-character-set=utf8

2. ホームディレクトリに .my.cnf というファイルを作り、そこに以下の内容を記述。ファイル名はドットで始まることに注意(3分くらいハマった)。

[client]
default-character-set=utf8

 

DreamHostでJoomlaインストール

DreamHostでJoomlaインストール published on DreamHostでJoomlaインストール へのコメントはまだありません

今、仕事用に新しいサイトを作成中。面倒だから誰か他の人に頼もうと思ったけど、知り合いの知り合いに値段を聞いたらこのご時世のも関わらずかなりの金額だったので、とりあえずCMSを使って自分で作る事にした。

「とりあえず」の段階なので、DreamHostにサイトを作っている。ワンクリックインストールでいくつか選べるんだけど、今回は試しにJoomla!を使ってみる事にした。

結論から言うと以下の手順でインストール&日本語化が可能。

  1. Install new website software — Advanced mode を開く。
  2. Joomla!を選択し、必要事項を入力してインストール。
  3. 設定手順が書かれたメールが来るのでそれに従う。但し、メールの手順の6番では’Install Sample Data’も’Load Migration Script’も実施しない。
  4. Joomla! じゃぱんから言語ファイル(ja-JP_Joomla_1.5.x_site.zipとja-JP_Joomla_1.5.x_admin.zip)と日本語パッケージ(Joomla_1_5_x_in_Japanese.zip)をダウンロード。
  5. 管理画面のExtentions -> Install/Uninstallを選択し、Upload Package Fileで2つの言語ファイルをアップロード。
  6. Extentions -> Language Managerで、日本語をデフォルトにする。
  7. 4.の日本語パッケージをローカルPCで展開し、その中の installationsqlmysqlsample_data.sql を開く。
  8. ‘#__’ という文字列を全て ‘jos_’ に置換(プリフィックスを変えた人は、そのプリフィックスに)。
  9. 8のSQLファイルを実行。

9番の手順はphpMyAdminで実行すれば多分問題ないと思うけど、自分はコマンドラインでやったので最初は文字化けが発生した。以下のように実行すれば問題なし。

mysql -h mysql.example.com -u user --password=pass --default-character-set=utf8 dbname < sample_data.sql

重要なのは–default-character-setの所。これを指定しないと文字化けが発生する。

CakePHPチュートリアルで文字化け

CakePHPチュートリアルで文字化け published on CakePHPチュートリアルで文字化け へのコメントはまだありません

CakePHPを触り始めた。とりあえずsymfonyを勉強した時と同じようにチュートリアルから始める事にした。

環境

  • CakePHP 1.2.3.8166
  • PHP 5.1.6
  • MySQL 5.1.34

ブログの記事を表示するところで化ける。コンソールからselect * from postsとかやるとちゃんと文字が表示されるのになぁ、と思って以下のコマンドを試してみると・・・

Continue reading CakePHPチュートリアルで文字化け