■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

blogの存在しないカテゴリー表示でSQLエラー

kiyo > blogの存在しないカテゴリー表示でSQLエラー @ 2012/8/21 16:14
データベース: PostgreSQL 8.4.x
baserCMSバージョン: 2.0.4
CakePHPバージョン: 1.2.10
デバッグモード : 1
blogのカテゴリーないで、(スマートURLを使ってないばあいかもしれませんが)
http://www.example.com/index.php/news/archives/category/noncategory
等のURLを表示した場合、下記のSQLエラーになります。

WHERE "BlogCategory"."id" = ''
がエラーの大元みたいなので、存在しないカテゴリーを指定。
IDが見つからず、空が帰って来る。
空と数値型を比較してエラー。

の流れだと思います。
以上、宜しくお願い致します。

以下、warning内容。
Warning (2): pg_query() [function.pg-query]: Query failed: ERROR: invalid input syntax for integer: "" [CORE/cake/libs/model/datasources/dbo/dbo_postgres.php, line 155]

Warning (512): SQL Error: ERROR: invalid input syntax for integer: "" [CORE/baser/models/datasources/dbo_source.php, line 596]

Query: SELECT COUNT(*) AS "count" FROM "bc_pg_blog_posts" AS "BlogPost" LEFT JOIN "bc_pg_blog_categories" AS "BlogCategory" ON ("BlogPost"."blog_category_id" = "BlogCategory"."id") LEFT JOIN "bc_pg_blog_contents" AS "BlogContent" ON ("BlogPost"."blog_content_id" = "BlogContent"."id") WHERE "BlogPost"."blog_content_id" = '1' AND "BlogPost"."blog_category_id" IN ('', '1', '2') AND "BlogPost"."status" = '1' AND (("BlogPost"."publish_begin" <= '2012-08-21 16:02:05') OR ("BlogPost"."publish_begin" IS NULL) OR ("BlogPost"."publish_begin" = '1970-01-01 09:00:00')) AND (("BlogPost"."publish_end" >= '2012-08-21 16:02:05') OR ("BlogPost"."publish_end" IS NULL) OR ("BlogPost"."publish_end" = '1970-01-01 09:00:00'))

Query: SELECT "BlogPost"."id" AS "BlogPost__id", "BlogPost"."blog_content_id" AS "BlogPost__blog_content_id", "BlogPost"."no" AS "BlogPost__no", "BlogPost"."name" AS "BlogPost__name", "BlogPost"."content" AS "BlogPost__content", "BlogPost"."detail" AS "BlogPost__detail", "BlogPost"."blog_category_id" AS "BlogPost__blog_category_id", "BlogPost"."user_id" AS "BlogPost__user_id", "BlogPost"."status" AS "BlogPost__status", "BlogPost"."posts_date" AS "BlogPost__posts_date", "BlogPost"."content_draft" AS "BlogPost__content_draft", "BlogPost"."detail_draft" AS "BlogPost__detail_draft", "BlogPost"."publish_begin" AS "BlogPost__publish_begin", "BlogPost"."publish_end" AS "BlogPost__publish_end", "BlogPost"."exclude_search" AS "BlogPost__exclude_search", "BlogPost"."created" AS "BlogPost__created", "BlogPost"."modified" AS "BlogPost__modified", "BlogCategory"."id" AS "BlogCategory__id", "BlogCategory"."blog_content_id" AS "BlogCategory__blog_content_id", "BlogCategory"."no" AS "BlogCategory__no", "BlogCategory"."name" AS "BlogCategory__name", "BlogCategory"."title" AS "BlogCategory__title", "BlogCategory"."status" AS "BlogCategory__status", "BlogCategory"."parent_id" AS "BlogCategory__parent_id", "BlogCategory"."lft" AS "BlogCategory__lft", "BlogCategory"."rght" AS "BlogCategory__rght", "BlogCategory"."owner_id" AS "BlogCategory__owner_id", "BlogCategory"."created" AS "BlogCategory__created", "BlogCategory"."modified" AS "BlogCategory__modified", "BlogContent"."id" AS "BlogContent__id", "BlogContent"."name" AS "BlogContent__name", "BlogContent"."title" AS "BlogContent__title", "BlogContent"."description" AS "BlogContent__description", "BlogContent"."layout" AS "BlogContent__layout", "BlogContent"."template" AS "BlogContent__template", "BlogContent"."status" AS "BlogContent__status", "BlogContent"."list_count" AS "BlogContent__list_count", "BlogContent"."list_direction" AS "BlogContent__list_direction", "BlogContent"."feed_count" AS "BlogContent__feed_count", "BlogContent"."tag_use" AS "BlogContent__tag_use", "BlogContent"."comment_use" AS "BlogContent__comment_use", "BlogContent"."comment_approve" AS "BlogContent__comment_approve", "BlogContent"."auth_captcha" AS "BlogContent__auth_captcha", "BlogContent"."widget_area" AS "BlogContent__widget_area", "BlogContent"."exclude_search" AS "BlogContent__exclude_search", "BlogContent"."created" AS "BlogContent__created", "BlogContent"."modified" AS "BlogContent__modified" FROM "bc_pg_blog_posts" AS "BlogPost" LEFT JOIN "bc_pg_blog_categories" AS "BlogCategory" ON ("BlogPost"."blog_category_id" = "BlogCategory"."id") LEFT JOIN "bc_pg_blog_contents" AS "BlogContent" ON ("BlogPost"."blog_content_id" = "BlogContent"."id") WHERE "BlogPost"."blog_content_id" = '1' AND "BlogPost"."blog_category_id" IN ('', '1', '2') AND "BlogPost"."status" = '1' AND (("BlogPost"."publish_begin" <= '2012-08-21 16:02:05') OR ("BlogPost"."publish_begin" IS NULL) OR ("BlogPost"."publish_begin" = '1970-01-01 09:00:00')) AND (("BlogPost"."publish_end" >= '2012-08-21 16:02:05') OR ("BlogPost"."publish_end" IS NULL) OR ("BlogPost"."publish_end" = '1970-01-01 09:00:00')) ORDER BY "BlogPost"."posts_date" DESC LIMIT 10

Query: SELECT "BlogCategory"."lft" AS "BlogCategory__lft", "BlogCategory"."rght" AS "BlogCategory__rght" FROM "bc_pg_blog_categories" AS "BlogCategory" WHERE "BlogCategory"."id" = '' LIMIT 1
ryuring > Re: blogの存在しないカテゴリー表示でSQLエラー @ 2012/9/6 22:51
kiyoさん、ご報告ありがとうございました。

再現できましたので、修正パッチを作成しました。

PostgreSQL で存在しないブログカテゴリーの一覧ページを表示するとSQLエラーが発生する

その他にも影響する処理内容の問題がありましたので同時に改善しています。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ryuring > Re: blogの存在しないカテゴリー表示でSQLエラー @ 2013/4/30 16:34
こちらの件、最新版ではフィックスしています。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
25 人のユーザが現在オンラインです。 (24 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 25