タグ:cakePHP

cakePHP2.x系をレンタルサーバで運用する祭の注意点

テスト環境で作成したcakePHP2.xを使用したウェブシステムを、レンタルサーバにアップしたところ

Error: SQLSTATE[HY000] [2005] Unknown MySQL server host ’(ホスト名):(ポート番号)′ (3) requires a database connection

というエラーが出てしまいました。

調べてみたところ、どうやらcakePHPはバージョン2からPDOを使ってデータベース接続を行っているらしい。

ってことはこのレンタルサーバはPDOが使えない・・・?

おまけにユーザが勝手にインストールできないタイプのサーバだから、詰んだ!\(^0^)/と思ったのですが、phpinfoを見る限り、モジュール入ってるし、実際問い合わせたところ使用は可能ですよ、とのこと。

その回答いわく、PDOでデータベースに接続する場合は、ホスト名とポート名を別々に指定する必要があるそうです。

つまり、

'host' => '127.0.0.1:3306',

という風に記述するのではなく(↑↓ホスト名とポート名は適当です)

'host' => '127.0.0.1',
'port' => '3306',

と、ポートはポートで記述しなくてはならなかったわけです。

テスト環境ではポートは気にしなくても大丈夫だったので盲点でした。

 

参考サイト

CakePHP2系とCakePHP1系のDB設定周りの違い | ミラボ

nandani | 2013年05月18日 | コメント(0) | トラックバック(0) | PHP関連

cakePHPでvalidatesを使う場合の注意事項

cakePHPにて

$this->(モデル名)->validates();

を使用する場合は、事前に

$this->(モデル名)->set();

を忘れずに設置する。

$this->(モデル名)->set();
$this->(モデル名)->validates();

setが無いとなんでもtrueで返ってきてしまいます。

nandani | 2013年04月12日 | コメント(0) | トラックバック(0) | PHP関連

cakePHPでデータベースのテーブルにフィールドを追加したときに発生した問題2

前回、cakePHPでデータベースのテーブルにフィールド追加したとき、それが反映されていない問題がありました。
とりあえずは、"fields"=>"*"の追加で一応の解決を見たのですが、あとから不具合がぼろぼろ出てくるわ、こちらでは手の負えない関数で問題が発生するわで、なんとかならんかなぁと思いググってみたらありました!

http://oneday.ter.jp/php/cakephp-php/983.html (イテルの一日一問さん)

「app/tmp/cache/models」フォルダの中にたまっているキャッシュを削除すれば良いらしい。

キャッシュか~。
そんなことだろうとは思ったけど、どこにあるのかはさっぱりわからなかったので助かりました。
ここの記事でも書かれてますが、キャッシュ恐るべし・・・

nandani | 2010年07月18日 | コメント(0) | トラックバック(1) | PHP関連

cakePHPでデータベースのテーブルにフィールドを追加したときに発生した問題

システムの修正でテーブルのフィールドを追加した際、データベースにはデータが入っているのに、findでそのデータを取り出せない問題が発生しました。
ローカル(XAMPP)では正常だったのに、本番サーバ(ファーストサーバを使用)ではうまく動作してくれない・・・
わざとエラーを吐き出させて表示されたSQLを読んでみると、どうやら追加されたフィールドをfieldsで取り出してくれていない様子。とくに設定してないんだけどなぁ。
しかたなく「fields=>"*"」を追加して解決しました。

■こんな感じ
$this->Hoge->find("all", array("fields"=>"*", "conditions"=>$conditions, ));

modelとかと関係あるのかな?

決定的解決方法見つかりました。

nandani | 2010年07月18日 | コメント(0) | トラックバック(0) | PHP関連

Copyright(c) 2010 - 2017 ダリの雑記