Home > CakePHP | PHP > CakePHP 1.2でPostgreSQLを使うとエラーが出る

CakePHP 1.2でPostgreSQLを使うとエラーが出る

この記事の所要時間: 212

あ,そうだ。PostgreSQL だともうなんだか色々エラーが出てるので諦めちゃいました……。

1.2を試してみました – まゆの日記

同じエラーかどうか分かりませんが、同じような現象があったので。

CakePHP1.2.0.5875 pre-betaでPostgreSQLに接続しようとすると以下のようなエラーが出ました。

Warning (2): pg_query() [function.pg-query]: Query failed: ERROR:  syntax error at end of input at character 20 [CORE\cake\libs\model\datasources\dbo\dbo_postgres.php, line 123]

原因は[app/config/database.php]に追加された「schema」パラメータです。このパラメータを使うとPostgreSQLにてschemaを指定できるのですが、デフォルトの設定では空文字になっており、それをそのままDBへ発行するのでSQLエラーとなります。

解決策としてはschemaパラメータにschemaを指定します。テーブル生成時等にschemaを指定しなければデフォルトで「public」になります。個別にschemaを指定している場合はそれを設定します。

[app/config/database.php]

class DATABASE_CONFIG {
	var $default = array(
		'driver' => 'postgres',
		'persistent' => false,
		'host' => 'localhost',
		'port' => '',
		'login' => '1x1',
		'password' => 'pass',
		'database' => 'inquiry',
//		'schema' => '',
		'schema' => 'public',   <--- schema
		'prefix' => '',
		'encoding' => ''
	);
}

なおschemaパラメータを指定しない場合もpublicが使われます(厳密に言うとDboPostgresで定義されている値が使われます。)つまりschemaパラメータを削除してしまう手もありますが、内部動作は変わる可能性があるので、database.phpで明確に指定しておいた方が無難でしょう。

Pocket

follow us in feedly

トラックバック:0

このエントリーのトラックバックURL
http://www.1x1.jp/blog/2007/11/cakephp_12_postgresql_schema_error.html/trackback
Listed below are links to weblogs that reference
CakePHP 1.2でPostgreSQLを使うとエラーが出る from Shin x blog

Home > CakePHP | PHP > CakePHP 1.2でPostgreSQLを使うとエラーが出る

検索
フィード
メタ情報

Return to page top