タグ: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',
と、ポートはポートで記述しなくてはならなかったわけです。
テスト環境ではポートは気にしなくても大丈夫だったので盲点でした。
参考サイト
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関連