CakePHP+ORACLEに挑戦。

Apache2.0+PHP5+CakePHP1.1+ORACLE10g


まずDB接続。
こちらのサイト
http://fiblog.blog16.fc2.com/blog-entry-39.html
を参考にして、オラクル接続用のDLLをとってきたり、database.phpを一通り設定すると[Cake is able to connect to the database]が表示されて接続を確認。


[/app/config/database.php]
class DATABASE_CONFIG {
	var $default = array(
		'driver' => 'oracle',
		'connect'   => 'oci_connect',
		'persistent' => false,
		'host' => 'localhost',
		'port' => '',
		'login' => 'scott',
		'password' => 'tiger',
		'database' => 'orcl',
		'schema' => 'scott',
		'prefix' => '',
		'encoding' => ''
	);
}


次に、実際にfindメソッドやらsaveメソッドを使ってみる。
findはとりあえずOK。id=NULLでのsaveメソッドはOKだが、idを指定しても出力されるSQLは何故かINSERT文になっていてエラー。特にdelについては、SQL文さえ出力されていない。


う〜〜〜む、困った。
もともとCake1.2用に開発されたものだから動かないのか?と思ってCakeのバージョンをあげてみる。

Apache2.0+PHP5+CakePHP1.2.0.5875(pre-beta)+ORACLE10g


するとfind,save,delともに無事に動いた。
Cake1.2はまだ安定版ではないけど、Cake1.1では動かないなら1.2でいくしかないよなぁ。。。




で、後日CakePHP1.2.0.6311 betaがリリースされてたので早速トライ。
接続は問題なし。
次に、find,save,delメソッドを一通り使ってみるとdelでORACLEエラー。
発行されているSQLを見てみると構文が明らかに変(ーー;)

仕方ないのでdelメソッドだけ上書きして使ってます。(<それでいいのか?)