yandodの日記

2008-04-27

PDOを使ってMySQLに接続するCakePHP用ライブラリを書いてみた

| 20:26 | PDOを使ってMySQLに接続するCakePHP用ライブラリを書いてみたを含むブックマーク

CakePHPがSQLite3に対応しにくい理由 - CPA-LABテクニカル

上記のリンク先でも書かれているようにCakePHPは今の所PDOには対応していません。

PHP4にも対応しているCakePHPではPHP5用のPDOを利用しづらいからでしょう。

またDBの差異を吸収する実装をCakePHP側で持っている部分が多く、ここをどこまでPDOの機能で行うようにするかも争点になるでしょう。

#同様の理由からかPEARを使って接続するCakeの動きもいまいちです。

見識を深めるべく、とりあえずPDOを使って接続できるようにするファイルをCakePHP1.1.19で書いて見ました。

MySQL用の処理を流用しているのでPDOといいつつも実質、MySQL限定になっていると思います。

ひとまずscaffoldが動いているところまでは確認できました。

dbo_pdoダウンロード

利用する場合は app/model/dbo/dbo_pdo.php として配置し、データベースの接続設定を下記のようにしてください。

class DATABASE_CONFIG
{
  var $default = array('driver' => 'pdo', //dbo_pdoを使う
    'connect' => 'mysql', //利用するPDOドライバ名
    'host' => 'localhost',
    'login' => 'root',
    'password' => '',
    'database' => 'marugoto',
    'encoding' => 'utf8',
    'prefix' => '');

どの辺がイケてないかを知りたいので不具合とかがあればお知らせ頂けると幸いです。

shin31shin31 2008/04/29 01:35 これはイイ!!
次はPostgreSQL対応とPrepared Statementをお願いしますだー:-D

yandodyandod 2008/05/07 00:05 とりあえずどこまで動くのかわからないとですね。
PDOの機能をどこまで使うかは悩みどころです。クエリログでなくなっちゃうし。

nnnnnnnnnn 2008/06/12 10:10 DBがujisで文字化けしました。
connect()にdbo_mysql.phpの文字コード設定箇所を追加して、database.phpのencodingをujisにして
直りました。

yandodyandod 2008/06/18 01:07 たしかにエンコーディングは考慮してなかったです。
ありがとうございます。

トラックバック - http://d.hatena.ne.jp/yandod/20080427/1209295590