[ロ] 山越え谷越え CakePHP

このエントリーをはてなブックマークに追加
はてなブックマーク - [ロ] 山越え谷越え CakePHP
Facebook にシェア
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`tweetmeme` not found]

Cake Tutorial: Building a simple blog IN PROCESSを参照しながら、CakePHPでWebアプリの習作を作成してみました。
環境は以下の通り。

Apache 2.0.54
PostgreSQL 7.3.4
PHP/4.4.0

このPostgreSQLが後でとても困ることに。


Apacheのmod_rewirteをONにしないでコンパイルされていることに気がつかず、バカみたいなことで試行錯誤。
家で動いているLinuxが4つとかになるともうどれがどの状態だか良くわからなくなってきました・・・ (。・x・)ゝ
PHP/CakePHP(Bobchin’s Wiki)を見るとmod_rewirteが有効でない場合は、

http://host/cake/public/index.php?url=コントローラ名/アクション名

とすればとりあえずよろしいようで。助かりました。
んで、とりあえず『http://サーバ名/index.php?url=moneys/index』にアクセスするぜ!!というところまでできたのですが・・・。

Warning: pg_query(): Query failed: ERROR: parser: parse error at or near “`” at character 25 in /path/to/cake/cake/libs/model/dbo/dbo_postgres.php on line 92
Query: SELECT * FROM moneys AS `Money` LIMIT 50 [Aff: Num: Took:18ms]
ERROR: ERROR: parser: parse error at or near “`” at character 25

エラーです。なぜ「AS]で逆シングルクオーテーション「`」で囲ってるんですか?
PostgreSQL 8.0.4 でためしても同じ結果になる。ということで「`」囲って欲しくないわけですよ・・・。
mysqlで試したら逆シングルクオーテーション「`」で囲んでうまくいくので、CakePHPの開発者はPostgreSQLの実装を試さないままなのかなぁ。時代はまだまだMySQLってことか。
でも最近じゃPostgreSQLもかなりいい感じになってきて、MySQLの高機能化とともに、PostgreSQLも有利になりつつあると思う。ぜひPostgreSQLフル対応を!!
とりあえず、コード編集するか・・・。
おそらく「cake/libs/model/model.php」で「`」を消してきゃいいんですかねー。ってことで、「`」を消して再チャレンジ。
結論から言うとSQLで「AS」がうまく効いていない。なので、
「echo $post[‘Post’][‘id’];」とやっているところは、「echo $post[‘id’];」にしてあげないとうまくありませんね。でも、これでうまくいきました!
よっしゃ、これからがりがりいきまっせー。

Popular Posts:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*