リンク

以下、分類した…

Formヘルパーでvalueにマルチバイト

 あるビューにて、テキストフォームにデフォルト値をセットしたかったので、

echo $form->input('title', array('size'=>40, 'value'=>$title));

と言う記述をした。

 ここで、$titleには文字列が入るが、

$title = "hoge";

とした場合、テキストフォームに"hoge"が記入された状態で表示されるが、

$title = "ほげ";

とすると、値が入らない…

textフィールドだけじゃなくて、textareaでも同じだった。

これは仕様?

ソースを追い回して、どこで"ほげ"がlostしているかを探す… で、やっとh()関数に"ほげ"を渡したところで消えていることまで突き止めた。 あとちょっとだ。

と思ったところで時間切れだったんだが、別の環境で同じソースを動かしてみたら、ちゃんと動いた… orz

今度は環境か…

データベースにつながらない

database.php に正しい接続情報をセットしていても、以下のメッセージが出てつながらなかった。 環境は Cake 2.2.4

Cake is NOT able to connect to the database.
Database connection "Postgres" is missing, or could not be created.

原因は、PostgreSQL の PDO ドライバが入ってなかったこと。

確認は、下記操作。

$ php -i | grep PDO
PDO
PDO support => enabled
PDO drivers =>

どうして入ってないのか原因を追いかけると、PHP の configure 時に --with-pdo-pgsql=shared と、shared 指定をしながら、実際には実行時に使うようにもしてなかったため。

改めて、shared を外してコンパイルして、確認。

# php -i | grep PDO
PDO
PDO support => enabled
PDO drivers => pgsql, sqlite
PDO Driver for PostgreSQL => enabled
PDO Driver for SQLite 3.x => enabled

解決。

なお、このエラーメッセージは、DB 接続のユーザやパスワードが間違っていた場合でも同じのが表示されるので注意。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS