僕はCDをパソコンに取り込むたびに、ネットでジャケット画像を探してきて同じフォルダに入れています。これまでGoogleイメージ検索で探していたんですが、最近発見したこのサービスでは大きい画像を優先して表示してくれるので便利。
DB_DataObjectをとりあえず克服
昨日、いやおとといから格闘し続けていたDB_DataObjectを使ってとりあえずアンケートページが作成できました。
長かった…
何回か無駄につまづいてしまいました。マニュアルの記述がもう少し充実していたら多くの人が助かっているに違いない。特にレコードを更新する update() の使い方はマニュアル上の記述がほぼ皆無で、行間を読むことを強いられてしまいました。
DB_DataObjectは、PostgreSQLで Sequence (Auto Increment)を利用する際、最後に挿入した行のIDをうまく取得できません。PostgreSQLの仕様では SELECT last_value() という関数がしっかり用意されているのですが、DB_DataObjectはそれを取得せずにTrueを毎回返してきます。そのため、これを最後のIDだと思って扱うと「1」とみなされ、意図した操作と食い違った結果になってしまいます。なので、ここでは DataObject の query() 関数を使って生のクエリを実行するしかありません。
もしくは、バックエンドが pgsql の場合にも正当な処理をするよう insert() をオーバーライドしてもいいかもしれません。 insert() の中身を見ていないので具体的な方法はわかりませんが。
ちなみに query() 関数もドキュメンテーションが不充分だったため、自分で var_dump しながらの試行錯誤でした。
今のところ、学び始めとはいえ単純なデータベース操作でこれまでと比べ物にならない程手間取っています。これははたして本チャンアプリでうまくいくんだろうか。
DB::DataObjectがうまくいかない
今日もさわやかな風が吹いていますが、僕は引きこもっています。こんにちは、マルコです。
何も考えずにデータベースからのデータの取得ができるようになるという、魔法のようなライブラリPEAR::DB_DataObjectと格闘してますが、うまくいかない。「あるテーブルからid=1のレコードを取得」ができない。あぁすばらしきライブラリ。
どうやらファイルの配置とパスの設定が食い違っているらしく、指定されたテーブル名に対応するクラスが読み込めないとのエラーが消えてくれません。
どう見ても合ってるようにしか見えない上に、エラーメッセージを見ただけでは具体的にどのパスのファイルを読み込もうとして失敗したのかが分からないという、大変性質(たち)の悪い状況に陥っています。デバッグできない。つまり遡ってやりなおすしかない。
今日学んだこと。何かが圧倒的に簡単になるものを作るなら、その導入も圧倒的に簡単である必要がある。デバッグのために出力するエラーメッセージでは、 想定したものと現実のものを両方記述してその差異を明らかにする必要がある。