medooのinsertはいただけない

2014/07/18 | medoo

さっそくmedooを試用しているが、いただけない箇所を見つけてしまった。

medoo自体はpdoのwrapperだから、データベース操作失敗時はfalseなりを返してくれればそれでいいのだが、どうやらそうではなかった。問題はinsertの場合。

試用中、insertで、未作成のカラム名を使用してデータを投入しようとしたら、その返り値が「0(文字列)」となった。これはダメだろ。

連番主キーがあり、insertに成功した場合、その返り値は最後に挿入された主キーとなる(ただし文字列として返却されるが)。連番主キーがない場合、もしくは主キーが連番でない場合、insertに成功するとその返り値は「0(文字列)」である。

つまり、成功時と失敗時で同じ返り値となることがあるということだ。error関数でエラーがセットされているかどうかを確認すればいいのだろうけど、使い勝手としてはよくない。medooのソースコードをみたけど、やはり返り値は何らかの数字文字列を返すようになっている。

medooをそのまま使いたいわけではなく、自作フレームワークに組み込みたかったので、さらにmedooのinsert関数を拡張し、insert失敗時はfalseを返すようにした。これで使い勝手は向上するはず。

その他のupdateとかdeleteとかは問題なさそう。さらに使ってみて、評価してみることにする。

medoo

2014/07/14 | medoo

昨今の流行に乗ろうかとFuelPHPにトライしたが早くも挫折。簡単なフレームワークではあるけれど、結局最初は、相応にお作法の勉強をしなくてはならない。しかも「簡単、簡単」と巷では言われているけれど、割と面倒だったりする。

最近のフレームワーク全体に言えることだけれど、たいてい中規模以上のサイトを想定した構造になっているような気がする。そしてPHPもどんどん高機能化が進んでいて、お手軽な言語ではなくなってきた気がするのは私だけではないはずだ。とは言っても、最新の技術は勉強しておかざるをえないわけで、FuelPHPについては今後1ヶ月かけて修得することにする。

当面オリジナルなフレームワークを使うことになるのだが(もう何年も使っている)、今回データベース関連をライブラリで置き換えることにした。今までは自前で書いていて、相応な使い勝手ではあったけれど、ある程度メジャーで専用のライブラリで置換するほうが無難であると考えたのである。

medoo

データベースライブラリはいろいろあるけれど、今回はmedooを使用した。ライブラリで文字列のクオートが出来て、簡単な基本構文さえ関数が容易されていればそれだけでいい。ORマッパーとか全然不要。だって管理しなければならないテーブル数なんてたかが知れているし、データベース周りの高速化のためにSQLをガリガリ手書きしたいわけで、特別なことは出来なくていいからだ。

medooは開発が活発と言いがたいものの、最近も新しいバージョンがリリースされている。基本的にはpdoのラッパーなわけで、直接pdoで記述してもいいような気がするが、そこはまぁなんとなく。ウェブサイトによるとその特徴は下記の通り。

  • 軽量1ファイル(重要!)
  • 簡単(重要!:覚える手間がほとんど不要)
  • パワフル(あまり重要でない:複雑なSQLはガリガリ手書きするので)
  • コンパチブル(まぁ重要:MySQL、PostgreSQL、SQLiteのバリエーションで十分)
  • SQLインジェクション防止(重要:でもソースコードは読んでおく必要あり)
  • MITライセンス(重要!:どこでもお好きにご自由に)

自前フレームワークへの組み込みも終わったので、まず何か一つ開発しなくては。使い勝手はその時にでも紹介することにする。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net